複数の変数に対しそれぞれ異なる条件をつけて値の抽出を行いたいのですが、スマートまたは処理速度が遅くならない書き方を調べています。
何かいい書き方または参考にできそうなものがあれば教えてください。
「テーブル」テーブル名:Seihin
|製品名|製品番号|時間|No|
|TEST001|TEST1001|220601123000|1|
|TEST001|TEST1002|220601123000|2|
|TEST001|TEST1003|220601123000|3|
|TEST001|TEST1004|220601123000|4|
|TEST002|TEST2001|220601133000|1|
|TEST002|TEST2002|220601133000|2|
|TEST002|TEST2003|220601133000|3|
|TEST002|TEST2004|220601133000|4|
「クエリイメージ」
SQL
1declare SeihinBango1 as char(10) 2declare SeihinBango2 as char(10) 3declare SeihinBango3 as char(10) 4declare SeihinBango4 as char(10) 5 6select 7SeihinBango1 = (set B.製品番号 from B where No = 1) 8SeihinBango2 = (set B.製品番号 from B where No = 2) 9SeihinBango3 = (set B.製品番号 from B where No = 3) 10SeihinBango4 = (set B.製品番号 from B where No = 4) 11FROM (SELECT * 12FROM Seihin as A 13WHERE 時間 = 14(SELECT TOP 1 時間 15FROM Seihin 16WHERE Seihin .製品名= 'TEST001' 17order by Seihin .時間 desc) and 製品名= 'TEST001') AS B 18ORDER BY B.時間 19
SeihinBango1~4の異なる変数ににNoごとに異なる値を入れたい形になります。
このまま実行しようとする場合、SeihinBango1 = (set B.製品番号 from B where No = 1)にて、
Bはバインドされていないというエラーがでるためこの書き方は扱えません。
ですが、FROM (SELECT * 以下で取得した一時テーブルから抽出を行わないと値が複数となるサブクエリになってしまうためエラーが発生します。
どのように記述するのがよいでしょうか。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/02 05:31 編集