CASE文を条件付きで使用する場合、小さな問題に直面しています。基本的にこれは私のコードです:私はそれが何をしたいのか選択がnullの状態を返すケース
SELECT m.codmagazzino as Magazzino, m.integratore, i.nomeintegratore,
m.scadenza, m.quantita,
CASE m.scadenza
when (m.scadenza <= curdate() + interval 1 month) then '50%'
when (m.scadenza >= curdate() + interval 1 month) AND (m.scadenza <=
curdate() + interval 2 month) then '30%'
when (m.scadenza >= curdate() + interval 2 month) AND (m.scadenza <=
curdate() + interval 3 month) then '10%'
END AS ScontoSuggerito
FROM magazzino m INNER JOIN integratori i on m.integratore =
i.codintegratore
order by scadenza
;
は、有効期限(scadenza)をチェックすることで、すぐに期限が切れる、大きいが示唆割引(ScontoSuggerito)となります。問題は、CASE文の条件に該当する行があるにもかかわらず、nullを返すということです。
Scadenza
2 3 Creatina Mono 2017-11-03 12
2 5 MaxPower 2017-11-07 6
2 9 ImpactWhey 2017-11-24 11
2 4 Omega 3 2017-11-30 5
1 1 IsoWhey 2018-02-17 10
私のdownvoteではありませんが、少なくとも問題を引き起こしているデータを含める必要があります。どうすればあなたの心を読むことができますか? –
また、間隔の開始点と終了点はすべて重なります。必ずしも問題ではありませんが、これに気づくべきです。 –
構文の問題?大文字小文字の後に 'm.scadenze'を削除しますか? 'case when condition then result1 when condition 2 then result 2 when condition 3 then results 3 end' – xQbert