0

我需要用不同的时间间隔过滤我的查询,如下所示:

...
where
date >= '2011-07-01' and date <='2011-09-30'
and date >='2012-07-01' and date >='2012-09-30'

我想这样的代码不好,因为这些日期相互冲突。但是如何仅过滤这两个间隔,跳过其他所有内容?甚至可能吗?因为如果我这样查询,我不会得到任何结果。我尝试使用 BETWEEN,但它做同样的事情。

我通过从年份中提取季度并仅计算第三季度来绕过这一点。但是其他季度的总和显示为零,我不能忽略这些总和列为零值的行。我试图过滤哪里price > 0(总和所在的列),但它说该列不存在。所以我把它全部FROM放在'('')'括号下,使它在where子句之前计算总和,但它仍然给我这样的列不存在的错误。

另外,如果您需要查看我现在的查询,我可以发布它,只需告诉我是否需要。

我想这样做,因为我需要比较两个不同年份的第三季度(也许我应该使用另一种方法)。

4

1 回答 1

1

你不会得到任何结果,因为你不能有一个日期在 2011 年 7 月 1 日到 2011 年 9 月 30 日之间以及 2012 年 7 月 1 日之后和 2012 年 9 月 30 日之后。

您的日期可以在 20122 年 7月 1 日到 2011 年 9 月 30 日之间2012 年 7 月 1 日到 2012 年 9 月 30 日之间。

SELECT col1 FROM table1
WHERE date BETWEEN '7/1/2011' AND '9/30/2011' OR date BETWEEN '7/1/2012' AND '9/30/2012';
于 2012-11-06T11:57:45.463 回答