年を4つの四半期に分解しようとしているSQLレポートを作成しています。そして、年に応じて別のスクリプトを実行する必要がないように、私はすべてを1つから引き離そうとしています。だから、私がしようとしているのはwhere節にCASE文を入れて、年の四半期を計算し、xの日付はyとzの間にある必要があるということです。これは多くの構文エラーをもたらし、私はどこで見つけることができません。あなたは見てみることができるだろうと私にもそれが可能であることを教えてくれますか?SQLどのようにしたときに日付をx日にするか
`AND s.actual_arrival BETWEEN
CASE
WHEN MONTH(DATEADD(dd, -1, GETDATE())) < 4 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-01-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '03-31 23:59:59'
WHEN MONTH(DATEADD(dd, -1, GETDATE())) > 3 AND MONTH(DATEADD(dd, -1, GETDATE())) < 7 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-04-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '06-30 23:59:59'
WHEN MONTH(DATEADD(dd, -1, GETDATE())) > 6 AND MONTH(DATEADD(dd, -1, GETDATE())) < 10 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-07-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '09-31 23:59:59'
WHEN MONTH(DATEADD(dd, -1, GETDATE())) > 9 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-10-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '12-31 23:59:59'
END`
どのDBMSを使用していますか? –
明らかにSQL Serverコードであるため、質問SQL Serverにタグを付けました。 –
MS SQLは申し訳ありません。ありがとうゴードン私はそのタグを逃した – Ardel