2012-11-29 38 views
0

我正在編寫一個報告,作爲select子句的一部分將列出日期(銷售日期)。 Salesdate還用於where子句以設置報告所基於的最早銷售日期(例如,我希望報告列出銷售日期> 2012-11-01的所有銷售)。但是,此日期將根據報告中的其他字段而變化。例如,對於item = item1,我不希望任何早於2012-10-01的記錄,但對於item = item2,我不希望任何早於2012-11-01的記錄。我想到了這一點:編寫一個查詢,其中的日期範圍取決於另一個字段的值

當item = item1 then then salesdate> 2012-10-01 else case when item = item2 then then salesdate> 2012-11-01在select和where子句中沒有太大信心,以及當然它不起作用(案件不期待條件)。有什麼建議麼?謝謝!

+2

'salesdate>情況下的項目時ITEM1然後澆鑄( '20121001' 作爲日期時間)時ITEM2然後澆鑄( '20121101' 作爲日期時間)end'。 –

+0

謝謝尼古拉!這工作非常好! –

回答

1

如果我正確理解你的問題,我想你可以用WHERE子句中的複合謂詞來完成這個任務。

例如:

... WHERE (Item = Item1 AND SalesDate > '2012-10-01') OR (Item = Item2 AND SalesDate > '2012-11-01') 

這實際上提供更好的性能,因爲SQL優化器將不必在WHERE子句中理清case語句。

HTH

相關問題