■98132 / inTopicNo.9) |
Re[8]: SQLの結合について |
□投稿者/ 鏡月 (69回)-(2021/09/22(Wed) 15:06:55)
|
2021/09/22(Wed) 15:24:24 編集(投稿者)
■No98131 (魔界の仮面弁士 さん) に返信 > ■No98130 (鏡月 さん) に返信 >> 間違っている箇所がなんとなくわかったのですがうまく説明することが出来ません。 > 「現象を再現可能な最低限の情報」として > ・CREATE TABLE > ・INSERT INTO > ・SELECT > の 3 つを掲載すれば良いのでは無いですか? > > >> 詳細情報共有の為、魔界の仮面弁士様が行っているようにキャプチャーデータを載せたいのですがどのようにやればよろしいのでしょうか。 > 現在実行している SQL をそのまま記載すれば良い気がしますが、 > 画像情報で無いと説明し辛いということでしょうか。 > > とりあえず、OneDrive に保存して、その公開 URL を貼ってみるとか。 > https://support.microsoft.com/ja-jp/office/9fcc2f7d-de0c-4cec-93b0-a82024800c07 ⇒ご返信ありがとうございます。 失礼になるかとは思いますがデータベース言語を記載させていただきます。
WHERE句内に指図IDを任意で入力し実績データの作業情報の比較データを出力したいと考えておりますがマスタ内に指図ID情報が存在しない為、出力データに差異が発生しておりました。 任意の指図IDの実績データ及びマスタデータを出力するSQLはどのようになるのでしょうか。 ※下記載しておりますSQLは先ほどまで実行していたSQLになります。
CREATE TABLE 実績 ([指図ID] varchar(4),[品番] varchar(4), [作業ID] varchar(4), [作業内容] nvarchar(10)); CREATE TABLE マスタ ([品番] varchar(4), [作業ID] varchar(4), [作業内容] nvarchar(10));
INSERT INTO 実績 VALUES ('A','1111', '0001', N'洗浄'), ('A','1111', '0002', N'乾燥'), ('A','1111', '0003', N'梱包'), ('A','3333', '0001', N'洗浄'), ('A','3333', '0002', N'乾燥'), ('A','3333', '0003', N'梱包'), ('B','1111', '0001', N'洗浄'), ('B','1111', '0002', N'乾燥'), ('B','1111', '0003', N'梱包'), ('B','2222', '0001', N'洗浄'), ('B','2222', '0002', N'乾燥'), ('B','2222', '0003', N'梱包') ;
INSERT INTO マスタ VALUES ('1111', '0001', N'洗浄'), ('1111', '0003', N'梱包'), ('1111', '0004', N'出荷'), ('2222', '0001', N'洗浄'), ('2222', '0003', N'梱包'), ('2222', '0004', N'出荷'), ('3333', '0002', N'乾燥'), ('3333', '0005', N'検証') ;
SELECT 指図ID ,COALESCE(実績.品番,マスタ.品番) AS 品番 ,実績.作業ID AS 過去作業ID ,実績.作業内容 AS 過去作業内容 ,マスタ.作業ID AS 現在作業ID ,マスタ.作業内容 AS 現在作業内容 FROM 実績 FULL JOIN マスタ ON マスタ.品番 = 実績.品番 AND 実績.作業ID = マスタ.作業ID WHERE 実績.指図ID = 'A'
|
|