我无法弄清楚如何修改我的查询以使用information.infoDate和otherDates.auxDate之间的最新日期。SQL Case语句子选择按子查询分组
SELECT state, COUNT(type) as EQUIPMENT,
(SELECT COUNT(type)
FROM information a
WHERE a.state = b.state
AND storedprocedures.to_date(infoDate) < (SELECT current date - 5 days
FROM sysibm.sysdummy1)
GROUP BY state) as IDLE,
ROUND((SELECT COUNT(type)
FROM information a
WHERE a.state = b.state
AND storedprocedures.to_date(infoDate) < (SELECT current date - 5 days
FROM sysibm.sysdummy1)
GROUP BY state)/CAST(COUNT(type) as float) * 100, 1) as percent
FROM information b
JOIN validStates
ON state = vstate
LEFT JOIN otherDates
ON typeid = auxtypeid
WHERE state <> '***'
GROUP BY state
ORDER BY state
我试过使用下面的语句,而不是infoDate的各种方式,但我无法得到查询运行。有没有更好的方法来使用这两个日期中最新的?
SELECT CASE WHEN auxDate > infoDate
THEN auxDate
ELSE infoDate END AS activityDate
FROM information
LEFT JOIN otherDates
ON typeid = auxtypeid
我们是否可以得到一些样本起始数据/所需的结果输出? DB2的哪个版本/平台?并且是否存在'反射''from_date'函数,无论您的目标格式是什么(为什么不存储在日期/时间/时间戳类型中)? – 2013-03-26 19:58:38