我对SQL很新。我正在尝试编写一个脚本来获取特定项目编号的特定事务类型(处置)的最后一次出现(日期)。
表格如下所示
ID ITEMNO TRANS_DATE TRANS_TYPE
1 XYZ 12/4/2015 DISPOSITION
2 ABC 12/6/2015 NEW ITEM
3 XYZ 12/14/2015 DISPOSITION
我希望ITEMNO'XYZ'脚本的结果是Disposition 12/14/2015。
select ITEMNO, TRANS_DATE, TRANS_TYPE from TRANSLOG t
where not exists(select tt.Id
from TRANSLOG tt
where tt.TRANS_TYPE=t.TRANS_TYPE and
tt.Id>t.Id
)
AND
ITEMNO ='XYZ'
AND
TRANS_TYPE = 'DISPOSITION'
order by t.TRANS_TYPE
上面的脚本没有返回任何结果。
答案 0 :(得分:0)
一种方法是获取popToRootViewControllerAnimated
的列表,然后将其加入到完整的表中。只有具有最近交易日期的(ItemNo, 'DISPOSITION', MAX(Trans_Date))
项才会显示结果:
DISPOSITION
如果您希望结果包含所有项目的最新SELECT
TransLog.ItemNo,
TransLog.Trans_Date,
TransLog.Trans_Type
FROM TransLog
JOIN (
SELECT ItemNo, Trans_Type, MAX(Trans_Date) AS MostRecent
FROM TransLog
WHERE ItemNo = 'XYZ' AND Trans_Type = 'DISPOSITION'
GROUP BY ItemNo, Trans_Type
) MaxDates ON
TransLog.ItemNo = MaxDates.ItemNo AND
TransLog.Trans_Type = MaxDates.Trans_Type AND
TransLog.Trans_Date = MaxDates.MostRecent
WHERE TransLog.Trans_Type = 'DISPOSITION'
ORDER BY TransLog.Trans_Type
条记录,请从内部查询的DISPOSITION
子句中删除ItemNo = 'XYZ'
。
有一个有效的SQLFiddle here - 感谢@ JamieD77进行设置:)
答案 1 :(得分:0)
如果我们坚持你的陈述,
我正在尝试编写一个脚本来获取a的最后一次出现(日期) 特定项目编号的特定交易类型(处置)。
这意味着单项号。你不能这样做吗?
SELECT ITEMNO, MAX(TRANS_DATE), TRANS_TYPE
FROM TRANSLOG
WHERE ITEMNO = 'XYZ' AND TRANS_TYPE = 'DISPOSITION';
SQL Fiddle thanks to @JamieD77 again =)
ITEMNO MAX(TRANS_DATE) TRANS_TYPE
XYZ December, 14 2015 00:00:00 DISPOSITION