• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL2008 クエリ文について)

SQL2008 クエリ文でテーブルAのデータを全て取得する方法

このQ&Aのポイント
  • テーブルAにはKAINoとSEQのデータがありますが、1つのKAINoに対して存在するSEQはバラバラです。全てのKAINoにSEQ1〜7を作成するクエリを流したい場合、どのようなクエリを使用すれば良いでしょうか?
  • この問題を解決するためには、テーブルA内の最大SEQと最小SEQを取得し、それぞれのKAINoに対してSEQ1〜7を生成する方法を使用する必要があります。
  • 具体的には、最小SEQを0として、テーブルAの各KAINoに対して最小SEQ+1〜最大SEQ+1までの連続したSEQを生成するクエリを作成します。これにより、全てのKAINoにSEQ1〜7が含まれる結果が得られます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.3

select t1.KAINo , (select count(*) from テーブルA t2 where t1.KAINo = t2.KAINo and t2.SEQ <= t1.SEQ) from テーブルA t1 KAINo SEQ  0001    1 0001    2 0001    3 0001    5 0002 1 0002 5 上の順にt1で取得されるとして、 (select count(*) from ・・・)は、それぞれ 1 2 3 4 1 2 となります。 件数多いとちょっと遅いので要注意ですが。

zenigata711
質問者

お礼

大変遅くなりましたが、ご回答ありがとうございました。 皆様にご教授頂いた知識は、大切に致します。 今回も助かりました!

その他の回答 (2)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

SELECT T.KAINo, DUMMY.SEQ FROM ( SELECT DISTINCT KAINo FROM テーブルA ) T ,(SELECT 1 SEQ UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 ) DUMMY 追加したいなら INSERT INTO テーブルA SELECT T.KAINo, DUMMY.SEQ FROM ( SELECT DISTINCT KAINo FROM テーブルA ) T ,(SELECT 1 SEQ UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 ) DUMMY WHERE NOT EXISTS (SELECT 1 FROM テーブルA WHERE テーブルA.KAINo = T.KAINo AND テーブルA.SEQ = DUMMY.SEQ )

回答No.1

INSERT INTO テーブル名(KAINo,SEQ) SELECT DISTINCT KAINo,1 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=1) UNION SELECT DISTINCT KAINo,2 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=2) UNION SELECT DISTINCT KAINo,3 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=3) UNION SELECT DISTINCT KAINo,4 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=4) UNION SELECT DISTINCT KAINo,5 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=5) UNION SELECT DISTINCT KAINo,6 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=6) UNION SELECT DISTINCT KAINo,7 FROM テーブル名 T1 WHERE NOT EXISTS(SELECT ' ' FROM テーブル名 T2 WHERE T1.KAINo=T2.KAINo AND T2.SEQ=7) でどうでしょうか。

関連するQ&A