SQL Server 2000 查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:20:11
数据库newdb里的PUR03F表,包含:pur03_02(料号,有可能有重复),pur03_03,pur03_04(时间,也有可能重复,时间格式为200X年/XX月/XX日),pur03_05,pur03_13和pur03_cur列
要求:找出所有的记录。
当pur03_02(料号)出现重复时,取时间离现在最近那条
如果pur03_04(时间)也相同,则输出离现在时间最近的唯一值。
请高手指教T-SQL写法(SQL 2000) 急,高手帮忙。
结果出来了!!可是时间怎么能用//把年月日隔开呢?

select p.pur03_02,pf.pur03_03,p.pur03_04,pf.pur03_05,pf.pur03_13,pf.pur03_cur
from ( select pur03_02,MAX(substring(pur03_04,1,4)+SUBSTRING(pur03_04,6,2)+SUBSTRING(pur03_04,9,2)) as pur03_04
from PUR03F group by pur03_02) p
left join
(select pur03_02,pur03_03,substring(pur03_04,1,4)+SUBSTRING(pur03_04,6,2)+SUBSTRING(pur03_04,9,2) as pur03_04,pur03_05,pur03_13,pur03_cur
from PUR03F )pf
on p.pur03_02=pf.pur03_02 and p.pur03_04=pf.pur03_04