我在oracle中有以下SQL查询:
SELECT * FROM
(
SELECT s.singleid,s.titel,a.naam,s.taal,SUM(b.aantal) AS "AANTAL VERKOCHT"
FROM singles s
JOIN artiesten a on a.artiestid = s.artiestid
JOIN bestellingen b on b.singleid = s.singleid
GROUP BY s.singleid,s.titel,a.naam,s.taal,b.datum
ORDER BY sum(b.aantal) DESC
)
WHERE ROWNUM <= 5
这样可行,但我只需要返回b.datum介于现在和前一周之间的记录。
我该怎么做呢?
答案 0 :(得分:2)
您应该可以在您的位置添加BETWEEN子句:
WHERE b.datum between SYSDATE - 6 AND SYSDATE
答案 1 :(得分:0)
在SQL Server中,语法为:
AND(b.datum&gt; DATEADD(周,-1,GetDate())和b.datum&lt; GetDate())
我认为Oracle中的语法相同或非常相似。
答案 2 :(得分:0)
您希望从BESTELLINGEN表中仅提取[datum]大于或等于(今天午夜减去7天)且小于或等于'now'(或小于明天午夜,根据您的要求)。我可能会将这组Bestellingen行作为内联视图并将其他表连接到它,然后进行分组。