- ベストアンサー
SQL文の書き方を教えてください。
例 tableAの項目:IDとID名。IDは、8桁の数字。 要は、8桁IDを元に、グループ化したい。 質問一:頭3桁でグループ化したい。 10110010 10111010 ここでひとつグループ --------------- 10300001 質問二:4桁目から2桁(4、5桁の二桁)でグループ化。 10210010 10210020 (10)でグループ化 --------------- 以上のようなSQL文書き方を教えていただけませんか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
IDが数値型で常に10000000以上の数値だと仮定します。 SELECT Mid(tableA.ID,1,3), Min(tableA.ID名) FROM tableA GROUP BY Mid(tableA.ID,1,3); SELECT Mid(tableA.ID,4,2), Min(tableA.ID名) FROM tableA GROUP BY Mid(tableA.ID,4,2); IDが数値型の場合「00110001」や「00000010」では動きません。それぞれが「110001」や「10」と評価されてしまいエラーになりますので。 なお、IDが文字型であれば、IDに「00110001」や「00000010」が含まれていても動きます。 また、上記の例では、適当に「ID名の最も小さい値」もクエリ出力させてます。
その他の回答 (2)
- chie65536
- ベストアンサー率41% (2512/6032)
#2への補足です。 数量の合計を出したいとの事なので。 SELECT Mid(tableA.ID,1,3) AS IDの大分類, Sum(tableA.数量) AS 数量の合計 FROM tableA GROUP BY Mid(tableA.ID,1,3); SELECT Mid(tableA.ID,4,2) AS IDの中分類, Sum(tableA.数量) AS 数量の合計 FROM tableA GROUP BY Mid(tableA.ID,4,2);
お礼
どうもありがとうございました。またよろしくお願いいたします。
- MovingWalk
- ベストアンサー率43% (2233/5098)
>要は、8桁IDを元に、グループ化したい。 「グループ化」とは、具体的にどうしたいということでしょうか?
補足
ほかの項目もあるですが、グループ化して、数量の合計を計算したいです。質問が不充分ですみませんでした。ご指導をお願いいたします。
お礼
うまくいきました。どうもありがどうございました、大変助かりました。またよろしくお願いいたします。