• ベストアンサー

集計

基礎的な質問ですみません。 VB6.0 SQLで開発しています。 テーブルm_A             テーブルm_B 品番  棚番  個数     品番  品名  仕入単価 001  A-1   10      001  あいう     5 002  B-1   20      002  かきく     6 001  C-2   15      001  あいう     5 002  B-2   13      002  かきく     6 003  C-5   20      003  さしす    7 これを下記の状態で出力は出来たのですが Dim strSQL As String Dim adoRs As New ADODB.RecordSet '----- SQL文作成 ----- strSel = "SELECT" strSel = strSel & ",A.品番" strSel = strSel & ",B.品名" strSel = strSel & ",A.棚番" strSel = strSel & ",A.個数" strSel = strSel & ",B.仕入単価 " strFro = " FROM m_A AS A" strFro = strFro & " LEFT JOIN m_B AS B ON A.品番=B.品番" strOrd = " ORDER BY" strOrd = strOrd + " A.品番" strSQL = strSel + " " + strFro + " " + strWhe + " " + strOrd 品番  棚番  個数  品名  仕入単価 001  A-1   10   あいう     5 002  B-1   20   かきく     6 001  C-2   15   あいう     5 002  B-2   13   かきく     6 003  C-5   20   さしす    7 下のように品番ごとに集計をしたいのですがどうすればいいのでしょうか? お願いします。 品番  個数  品名  仕入単価 001  25   あいう     5 002  33   かきく     6 003  20   さしす    7

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

  • ベストアンサー
noname#221739
noname#221739
回答No.3

↓で、どうでしょう? NVL()は Oracle 関数なんで、そこは利用する RDBMS に応じて読み替えて下さい。 SELECT C.品番 ,C.個数 ,B.品名 ,B.仕入単価 FROM (  SELECT A.品番 ,SUM( NVL( A.個数, 0 ) ) AS 個数  FROM m_A A  WHERE 必要な条件  GROUP BY A.品番 ) C  LEFT JOIN m_B B  ON B.品番 = C.品番 ORDER BY C.品番

kinoko731
質問者

お礼

ありがとうございます。 うまく出来ました。

その他の回答 (2)

回答No.2

SELECT C.品番,SUM(C.個数) AS 個数,C.品名,C.仕入単価 FROM ( SELECT A.品番,B.品名,A.棚番,A.個数,B.仕入単価 FROM m_A AS A LEFT JOIN m_B AS B ON A.品番=B.品番 ) AS C GROUP BY C.品番,C.品名,C.仕入単価 でどうでしょうか?

kinoko731
質問者

お礼

ありがとうございます。 うまく出来ました。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

GROUP BY と SUM 関数でしょうね。

参考URL:
http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html

関連するQ&A