从现在到上周之间返回记录

时间:2012-08-03 15:44:27

标签: sql oracle

我在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介于现在和前一周之间的记录。
我该怎么做呢?

3 个答案:

答案 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行作为内联视图并将其他表连接到它,然后进行分组。