SQL查询编码

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:53:36
数据库(COUST)如下
CUS_ID CUS TIME
1 乙 0803
1 甲 0802
2 甲 0802
4 甲 0801
2 乙 0712
....
....
要查询显示出符合条件的所有的CUS_ID并不计重复排列.
要求该CUS_ID最大日期的行的CUS是甲.(对某ID其种类是甲但日期不是最近的,如第2行.不选)

即结果要
2
4
日期如0802是 08年2月的意思。
日期最近,即对于具体某ID,取其日期值最大项那行。

select CUS_ID from 表 where CUS_ID in (select a.CUS_ID from 表 as a,表 as b where a.CUS_ID=b.CUS_ID and a.CUS='甲' and b.CUS='乙' and a.time>b.time)
-------------------------------------------------------
SELECT a.CUS_ID
FROM COUST AS a ,COUST AS b
WHERE (a.CUS = '甲') AND (b.CUS = '乙') and a.CUS_ID = b.CUS_ID AND a.TIME > b.TIME
UNION
SELECT CUS_ID FROM COUST
WHERE (CUS_ID IN
(SELECT CUS_ID FROM COUST AS COUST_1 GROUP BY CUS_ID HAVING (COUNT(CUS_ID) = 1))) AND (CUS = '甲')

不明白你说的什么意思

select distinct cus_id
from coust
where cus='甲'
order by time desc

明白了,说说我实现的方法
1/先取出对于具体某ID,其日期值最大的数据
2/然后再从中CUS是的数据

select * from
(select cus_id,max(