質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

DB2

DB2(IBM Database2)は、IBMのリレーショナルデータベース管理システム製品です。 UNIXとWindows、IBM社のメインフレームOS用が用意されており、 幅広いプラットフォームに対応しています。

Q&A

解決済

1回答

670閲覧

一営業日前の日付を使ってその日の売上高を抽出したい

rms398

総合スコア50

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

DB2

DB2(IBM Database2)は、IBMのリレーショナルデータベース管理システム製品です。 UNIXとWindows、IBM社のメインフレームOS用が用意されており、 幅広いプラットフォームに対応しています。

0グッド

1クリップ

投稿2019/05/16 14:56

編集2019/05/17 02:04

一営業日前の日付を調べてその日の売上金を抽出したいです。

使っている機種はAS400のデータ転送時にIBMiからの転送でつかっているsqlです。

自分が考えたsqlはこのような感じですが、うまく通りません

sql

1select t1.月日,t1.担当者コード,t1.本日売上 2from 売上 t1 3where t1.月日(3,4桁 例41日→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に変更する魂胆です。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2019/05/16 18:39

質問に 売上、カレンダーマスタ のCREATE TABLE文と数件で良いからテーブルに存在するデータをINSERT文で提示すると適切なコメントが付き易いです。
sazi

2019/05/17 00:17 編集

売上には年または年度は無いのですか?単に月日だけだと他の年のデータも含まれてしまいます。 あるようならその情報も提示して下さい。 また、DATE_FORMATはDB2で有効な関数ですか? エラーにならないSQLを提示して下さい それから使用しているDB2のリファレンスのURLも
Orlofsky

2019/05/17 00:17

CREATE TABLE文と書いたんだけどね。INSERT文は完全無視だし。 DB2の環境はないので回答はしないけど。
rms398

2019/05/17 00:48 編集

すみませんが、事情やas400を上手く取り扱えないこともあってcreate table文など詳しく書けません
Orlofsky

2019/05/17 02:10

各カラムのデータ型がないです。SQLは素人さんでしょうか? 他に教えを請える先輩などがいないと辛いのでは? テーブル上で日付を和暦で持つのは普通やりません。テーブル上では西暦でもっていてfunctionで和暦に変換して表示、和暦で入力された日付をfunctonで西暦に変換してテーブルにINSERT or UPDATE。
nekotanmk2

2019/05/31 11:16

1. T1売上表 の 月日 のデータ型は何でしょうか ? 4桁 文字? 4桁数値? 2. 西暦日(8桁)のデータ型は何でしょうか? 8桁文字?数値? 日付型?
guest

回答1

0

自己解決

販売物流システムの研修でこのことを聞いてみます

投稿2019/06/03 04:52

rms398

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問