- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:副問合せについて(INSERT, GROUP))
副問合せについて(INSERT, GROUP)
このQ&Aのポイント
- SQL初心者のため、副問合せ(?)の方法がわからず困っています。
- DBからの項目移送と集計を行うために、INSERT文とGROUP BYを組み合わせたSQL文が必要です。
- 具体的なINSERT文とGROUP BYの使い方についてアドバイスをいただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> TOTALを集計したいです。 KNT51テーブルにTOTALという項目があり、その数値を集計したいのでしょうか?それともKNT51テーブルの何らかの項目を集計して新規テーブルのTOTALという項目に入れるのでしょうか? また、GROUP BY句をつけた場合、テーブルのカラムの値は、GROUP BY句で指定した項目か、集約関数を使って抽出した値しか取得できません。 したがって、下記の様に仮定します。 ・KNT51テーブルでは、TYM, HINB が決まれば、NSU1 ~ NSU31 は定まるものとする。 ・KNT51テーブルにTOTALという項目が存在し、それを合計して、Sk51_do01テーブルのTOTALに格納する。 すると、SELECT文の部分は下記の様になるかと。 SELECT TYM, '12', '1', 'A', HINB, SUM(TOTAL), NSU1, NSU2, ・・・ ,NSU31 FROM KNT51 GROUP BY TYM , HINB, NSU1, NSU2, ・・・ ,NSU31
お礼
root139さん なんとか自分で作ってみました。アドバイスありがとうございました。 INSERT INTO #Sk51_do01(TYM,RKBN,SBKU2,URIK,HINB,TOTAL,NSU1,NSU2,NSU3,NSU4,NSU5,NSU6, NSU7,NSU8,NSU9,NSU10,NSU11,NSU12,NSU13,NSU14,NSU15,NSU16,NSU17,NSU18,NSU19,NSU20,NSU21,NSU22,NSU23,NSU24,NSU25,NSU26, NSU27,NSU28,NSU29,NSU30,NSU31) SELECT TYM,'12','1','A',HINB,SUM(TOTAL),SUM(NSU1),SUM(NSU2),SUM(NSU3),SUM(NSU4),SUM(NSU5),SUM(NSU6),SUM(NSU7),SUM(NSU8), SUM(NSU9),SUM(NSU10),SUM(NSU11),SUM(NSU12),SUM(NSU13),SUM(NSU14),SUM(NSU15),SUM(NSU16),SUM(NSU17),SUM(NSU18), SUM(NSU19),SUM(NSU20),SUM(NSU21),SUM(NSU22),SUM(NSU23),SUM(NSU24),SUM(NSU25),SUM(NSU26),SUM(NSU27) ,SUM(NSU28), SUM(NSU29),SUM(NSU30),SUM(NSU31) FROM KNT51 GROUP BY TYM ,HINB
補足
root139さん ありがとうございます。 仮定して頂いたとおりで間違いないのですが、補足するとTYM,HINBを キーに複数の重複したレコードがあり、その集約も行いたいと思います。 教えて頂いたSELECT文だと、全ての項目がキー(といっていいのでしょうか)になり、集計がされません。 私の文章の書き方が悪くて、すみません。 TYM、HINBで集計する為にはどうすればよいのでしょうか?