- 締切済み
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
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Tom-3
- ベストアンサー率32% (42/130)
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 でどうでしょう。
- 原沢 信道(@nharasawa)
- ベストアンサー率53% (90/168)
簡単な方法はGROUP BYに商品名も得意先名を入れる方法です。 無駄な動きですが、集計単位には変わりは無いのでお試し下さい。
お礼
ご回答ありがとうござます。 回答にあるGROUP BYに商品名も得意先名も入れると、同一商品に 得意先が2カ所あるテーブルのため、意図する集計結果が表示されなく なってしまいます。
お礼
ご回答ありがとうございます。 解決しました。