一営業日前の日付を調べてその日の売上金を抽出したいです。
使っている機種はAS400のデータ転送時にIBMiからの転送でつかっているsqlです。
自分が考えたsqlはこのような感じですが、うまく通りません
sql
1select t1.月日,t1.担当者コード,t1.本日売上 2from 売上 t1 3where t1.月日(3,4桁 例4月1日→401) = 4(select date_format(t2.西暦日(8桁),%c%d) 5from カレンダーマスタ t2 6where t2.自社営業日 = 1 and t2.西暦日(8桁)< now() 7order t2.西暦日 desc); 8 9参考用レコード 10CREATE TABLE 売上表( 11 月日 12 担当者コード 13 本日売上 14 本日粗利 15 当月売上 16 当月粗利 17 当期売上 18 当期粗利 19 前年同日月間売上 20 前年同日月間粗利 21 前年同日年間売上 22 前年同日年間粗利 23 本部コード 24 営業所コード 25 部コード 26 課コード 27) 28CREATE TABLE カレンダーマスタ( 29 DATE NO. 30 和暦日 31 元号ID 32 表示日(6) 33 西暦日(8) 34 西暦日(6) 35 曜日 36 祝祭日 37 自社営業日 38 作成日 39 作成時刻 40 最終更新日 41 最終更新時刻 42)
今日以前でかつ自社営業日が1である日の1件目(一営業日前)を使ってその日の売上金を抽出するということです。
売上の月日(3,4桁%c%d)とカレンダーマスタの西暦日(8桁YYYYMMDD)は表示形式が違うのでカレンダーマスタの西暦日はdate_formatで3,4桁の日付形式%c%dに変更する魂胆です。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー