• 締切済み

VIEWでテーブルの集計結果を表示したいです

いつもお世話になっています。 下のテーブルデータから下記VIEW結果を表示する場合、 どのようなSQL文で出力が可能になるのでしょうか。 ※GROUP BY利用では集計値でない商品名、得意先名を出力できず困っています。 初心者的な質問で申し訳ありませんが、ご回答よろしくお願いします。 ○環境:Windows Server 2003、 SQLServer 2005 ------------------------------------------- 「売上明細テーブル」 商品CD 商品名 得意先CD 得意先名 価格 1 商品1 1001 得意先1 100 1 商品1 1001 得意先1 100 1 商品1 2002 得意先2 100 2 商品2 2002 得意先2 200 2 商品2 3003 得意先3 200 2 商品2 3003 得意先3 200 ------------------------------------------- 「VIEW結果」※価格は商品CD+得意先CDキーの合計値です。 商品CD 商品名 得意先CD 得意先名 価格(合計) 1 商品1 1001 得意先1 200 1 商品1 2002 得意先2 100 2 商品2 2002 得意先2 200 2 商品2 3003 得意先3 400

みんなの回答

  • Tom-3
  • ベストアンサー率32% (42/130)
回答No.2

SELECT    A.商品CD ,B.商品名   ,A.得意先CD ,C.得意先名   ,A.価格合計 FROM (    SELECT       商品CD      ,得意先CD      ,SUM(価格)    FROM 売上明細テーブル    GROUP BY 商品CD,得意先CD ) AS A LEFT JOIN ( SELECT 商品CD,商品名 FROM 売上明細テーブル GROUP BY 商品CD,商品名 ) AS B ON A.商品CD=B.商品CD LEFT JOIN ( SELECT 得意先CD,得意先名 FROM 売上明細テーブル GROUP BY 得意先CD,得意先名 ) AS C ON A.得意先CD=C.得意先CD ORDER BY A.商品CD,A.得意先CD でどうでしょう。

oki_4470
質問者

お礼

ご回答ありがとうございます。 解決しました。

回答No.1

簡単な方法はGROUP BYに商品名も得意先名を入れる方法です。 無駄な動きですが、集計単位には変わりは無いのでお試し下さい。

oki_4470
質問者

お礼

ご回答ありがとうござます。 回答にあるGROUP BYに商品名も得意先名も入れると、同一商品に 得意先が2カ所あるテーブルのため、意図する集計結果が表示されなく なってしまいます。

関連するQ&A