我正在处理以下查询,无法弄清楚它的最后一部分。我需要我的查询给我一个上一个业务和前一个工作日减去( - )28天之间的结果集。 (例如2015年10月28日到2015年10月28日-28之间的日期范围)到目前为止我写的查询只给了我第-28天(2015年9月30日)而不是之前的业务范围当天和前一个工作日-28。我的研究显示了几种不同的方法,到目前为止没有一种方法可以帮助我。
SELECT SMBL, SUM(NET_FLOWS/1000000.00)
FROM HISTORY
WHERE DATE - 28 = DATE AND DATE = TO_DATE('10282015','MMDDYYYY')
AND SYMBOL IN ('AAA','BBB')
GROUP BY SMBL
答案 0 :(得分:0)
首先,使用BETWEEN可以轻松完成日期范围,因此您可以快速解决问题:
WHERE DATE BETWEEN (SYSDATE-28) and (SYSDATE-1)
然后你意识到你的日期有时间成分,所以要包括所有的昨天和28天所有你需要:
WHERE DATE >= TRUNC(SYSDATE)-28
AND DATE < TRUNC(SYSDATE)
然后我看看你的规则&#34;前一个工作日&#34;并问 - 你的工作日是什么时候?在星期一上一个星期五?还是周六?或者你是一个每周7天的生意?法定假日怎么样?那是28日历吗?或28个工作日?
啊,业务规则。魔鬼总是在那些细节中......