3列の特定のテーブルで問題が発生します。SQL文で値が返されない
itemnr --item number (int) 7 chars like 1111111
ccyymm --century year month (int) 6 chars like 201605
amount --amount of the specific item for that year month combo.
基本的に過去12ヶ月の金額を示す表を作成したいとします。
私は私where ccyymm = 201604
を持つすべての項目を示し、それが完璧に動作し、次のコード
SELECT *
FROM items
WHERE ccyymm = year(now())||right('00'||month(now()),2) -1
を使用して12の仮想テーブルを作成しました。
問題は、私が引いてい月が現在の月を超えているとき、私は同様に私は次のように使用して今年から1を引く必要があるということです。
SELECT *
FROM items
WHERE ccyymm = (case
when month(now()) < 12
then year(now())- 1||right('00'||month(now()),2)
else year(now())||right('00'||month(now()),2) -12
end)
ので、私は12を取得したい場合数ヶ月前のデータは月が12より少ないので、その年から1を減算するので、基本的には私に201505
を与えなければなりません。それは私のSQLは有効だが、それはまだ値を返すと私はデータベースを見るときには、そのためのデータがあるccyymm
。
なぜ、これらすべて大文字?あなたの投稿を編集してください、それは妨害です、それを読まないでください。 – vaso123
あなたはアメリカで何をしていますか?代わりに、期待される出力とともにサンプルデータを表示してください。写真は千の言葉の価値がある。 –
** MOTHER !!!!! ** * Marnusは私に叫んでいます!* – Martin