一对多关系。怎样查出“多”方的最后一条记录?有人答出,本人另送100--200分!!!(50分)

  • 主题发起人 主题发起人 ycmzp
  • 开始时间 开始时间
Y

ycmzp

Unregistered / Unconfirmed
GUEST, unregistred user!
有人答出,本人另送100--200分!!!
一对多关系。怎样查出“多”方的最后一条记录?

美国 2000-01-01 12
美国 2000-01-02 18
美国 2000-05-01 13
美国 2000-01-05 1
中国 2000-02-01 12
中国 2000-01-01 20
....
我要查出每个国家最后一笔记录,即
美国 2000-05-01 13
中国 2000-02-01 12
...

2 用SQL查出这后,将数据在DBGIRD中修改,写回数据库(ACCESS)。如何做?

 
1,不知道你这最后一条记录是否满足什么条件?
如果是按时间来则
select distinct 字段名 from 表名 order by 时间字段名 (可做升降序)
2,直接在上面修改就行了。
//-------------------
 
是啊,按时间排序就行了。
 
如果不是按时间
select 字段1,字段2,max(可比较的字段)from 表名 group by 国家字段名
用SQL查出这后,将数据在DBGIRD中修改后,不能直接写回数据库(ACCESS)。
要用updateSQL空件更新数据库
 
排序.连接到dbgrid中直接修改
 
oracle 语法如下
-------------------------------------
select 国家,max(日期) from table1 group by 国家
----------------------
 
select * from table1 inner join
(select 国家,max(日期) as 日期 from table1 group by 国家) aa
on table1.table1.国家=aa.国家 and table1.日期=aa.日期

条件是'国家-日期'是唯一值,否则你应增加一自动增加字段!

不要忘了给我加分!
 
to flysand:
"select 国家,max(日期) as 日期 from table1 group by 国家 "
能通过吗
 
上面说的都对 你自己看着用你会的 !也就是你可以理解的 或是说你老能看得明白的 OK

我就不说了 最好是你自己按他们的方式来比较好坏 在决定给谁分数
 
要修改查询结果,应
select table1.* from table1 inner join
(select 国家,max(日期) as 日期 from table1 group by 国家) aa
on table1.table1.国家=aa.国家 and table1.日期=aa.日期

to china_peng:
不能得到其他字段!

 
to flysand:
改为 通过,谢了
select table1.* from table1 inner join
(select 国家,max(日期) as 日期 from table1 group by 国家) aa
on table1.国家=aa.国家 and table1.日期=aa.日期

 
select *
FROM TABLE
WHERE (国家,日期)
IN (SELECT 国家,MAX(日期)
FROM TABLE
GROUP BY 国家)
PB6+ORACLE中通过
 
多人接受答案了。
 
后退
顶部