0

次のようなさまざまな時間間隔でクエリをフィルタリングする必要があります。

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

これらの日付が互いに競合するため、そのようなコードは良くないと思います。しかし、これら 2 つの間隔だけをフィルタリングして、他のすべてをスキップするにはどうすればよいでしょうか? それは可能ですか?このようにクエリを実行すると、結果が得られないため、BETWEEN を使用しようとしましたが、同じことを行います。

年から四半期を抽出し、第 3 四半期のみを計算することで、これを回避しました。しかし、他の四半期の合計はゼロとして表示され、値がゼロの合計列を持つこれらの行は無視できません。どこ(合計が入る列)をフィルタリングしようとしましたprice > 0が、列が存在しないと表示されます。FROMそのため、「('')」括弧の下に丸ごと入れて、where 句の前に合計を計算させますが、それでもそのような列が存在しないというエラーが発生します。

また、私が今持っているクエリを見る必要がある場合は、投稿できます。必要かどうか教えてください。

2 つの異なる年の第 3 四半期を比較する必要があるため、これを実行したいと考えています (別のアプローチを使用する必要があるかもしれません)。

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 に答える