- 締切済み
VIEWでテーブルの集計結果を表示したいです
Tom-3の回答
- 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 でどうでしょう。
関連するQ&A
- 集計をしたい
SQLで集計をしたいです。 SQLを始めたばかりの者です。 下記、よろしくお願いします。 説明不足がありましたら、ご指摘をお願いします。 MS-SQLServer2005環境です。 下記の売上テーブルが存在します。 テーブル:UriageTBL 年月日 受注番号 商品コード 商品名 個数 単価 金額 20101001 100 300 リンゴ 1 100 100 20101001 110 400 バナナ 1 150 150 20101001 110 400 バナナ -1 150 -150 20101001 120 500 キャベツ 1 120 120 20101002 130 500 キャベツ 1 120 120 20101002 140 600 レタス 1 110 110 20101002 140 600 レタス 1 110 110 20101002 150 400 バナナ 1 150 150 ----------------------------- 商品コードに対応する商品グループ(テーブルは存在しません) 商品コード 商品グループ 300 果物 400 果物 500 野菜 600 野菜 ---------------------------- 【結果】 年月日 商品グループ 受注件数 個数合計 金額合計 2010/10/01 果物 1 1 100 2010/01/01 野菜 1 1 100 2010/10/02 果物 1 1 150 2010/10/02 野菜 2 3 340 売上テーブル(UriageTBL)を、年月日別、商品グループ別に集計し、受注件数、個数合計、金額合計を取得したいです。 また、商品コードに商品グループテーブルが存在しない為、SQL内で設定します。 ただし、受注合計金額が0円の時は集計から外します。(受注番号110は集計から外します。) (受注件数は、受注番号の件数です。) 上記の場合、どのようなSQLの組み方をすればよいのか見当もつかず悩んでおります。 どなたかご教授頂ける方がいらっしゃいましたら、よろしくお願い致します。
- ベストアンサー
- SQL Server
- SQLでの集計結果取得について
以下のようなSQLを書いたのですが,ほしい結果が得られませんでした。 受注に存在しない得意先についても得意先コードと得意先名を得たかったので、 "from 受注 Right Outer Join 得意先 On 受注.得意先コード = 得意先.得意先コード" としたのですが, 受注に存在しない得意先についてはデータが得られませんでした。さらに、Where句で、"受注.得意先コード =* 得意先.得意先コード"と書くとエラーが出てきてしまいました。 どうすれば得意先に存在する得意先すべての集計結果が得られるのでしょうか? String sql = "Select 得意先.得意先コード, Min(得意先.得意先名) " + "As 得意先名, Sum(受注.受注合計金額) " + "from 受注 Inner Join 得意先 " + "On 受注.得意先コード = 得意先.得意先コード " + "where 受注.得意先コード = 得意先.得意先コード " + "and 受注状態区分 = '" + joutaiKubun + "' " + "and 納入日 between '" + startYMD + "' and '" + "endYMD + "' " + "Group By 得意先.得意先コード " + "Order By 得意先.得意先コード ";
- ベストアンサー
- Java
- 集計結果を別テーブルに更新クエリで書き出したい。
Access2000を使っています。 テーブルとフィールドの関係は次のようになっています。 (一部、Northwind.mdbを使っています。) 受注 ---------------------- 得意先コード 受注コード 受注明細 ---------------------- 受注コード 単価 数量 売上集計 ---------------------- 得意先コード 合計 受注明細テーブルの単価と数量を掛け合わせたものの合計を 売上集計テーブルの合計に書き出したいと思います。 次の選択クエリの合計の値を売上集計テーブルの取引先コード の一致する場所に書き出したいのです。 SELECT 受注.得意先コード, Sum([単価]*[数量]) AS 合計 FROM 受注 INNER JOIN 受注明細 ON 受注.受注コード = 受注明細.受注コード GROUP BY 受注.得意先コード; 売上集計テーブルと受注テーブルの得意先コードは同じものが 存在します。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- テーブルの集計値を別テーブルに更新したいのですが
mysql+PHPを利用していますが、表記の件で数日間悩んでおります。 実際に可能な操作かどうかもわかりません。 よいお知恵があったら教えてください。 下のようなテーブルがそれぞれあります。 table1 ID・得意先コード・受注内容・受注金額 1・ 28 ・ xxxx ・ 10000 2・ 32 ・ aaaa ・ 5000 3・ 28 ・ YYYY ・ 20000 4・ 15 ・ tttt ・ 15000 5・ 32 ・ kkkk ・ 3000 (得意先コードはtable2のIDです) table2 ID・得意先名・受注金額合計 15・ BBB・ 28・ CCC・ 32・ DDD・ PHPファイルを実行する度に、 「table1」の「受注金額」を「得意先コード」ごとに集計した各値を、「table2」の各「受注金額合計」にそれぞれ更新していきたいと思っています。 色々調べたところ以下の構文が紹介されていたので試してみました。 Update table2 set 受注金額合計 = (select sum(受注金額) from table1 INNER JOIN table2 ON table1.得意先コード = table2.ID) すると「#1064 - You have an error in your SQL syntax」というエラーが出てしまいました。select以降の構文が良くないらしいのですが、私の書き方が悪いのか、それすらもわからない状態です。 MySQLは4.0.24、PHPは4。レンタルサーバーを利用しています。 なにとぞよろしくお願いします。
- 締切済み
- MySQL
- UNION ALLでつなげた複数ビューの集計
お世話になっています。 現在下記のようなSQLを組んでいます。 ビュー1の集計結果 UNION ALL ビュー2の集計結果 UNION ALL ビュー3の集計結果 実行結果 例 年月 人数 金額 201104 3 20000 201105 2 10000 201104 1 5000 GROUP BY句で年月を集計したビューをUNION ALLでつないでいるため、 当然のように同じ年月が何度も出てくるため、テストがしづらくなっています。 やりたいこととしては、さっきの実行結果をさらに年月で集計することを 考えています。 年月 人数 金額 201104 4 25000 201105 2 10000 対策として、下記のように集計したビューをUNION ALLでつないだ結果を さらに集計するSQLを作りました。 SELECT FROM( ビュー1の集計結果 UNION ALL ビュー2の集計結果 UNION ALL ビュー3の集計結果 ) GROUP BY その結果、下記のエラーが発生しました。 ORA-00935:グループ関数のネスト・レベルが深すぎます。 環境はoracle11gです。 あとは、SQLのFROM句の()の部分をビューとして作成し、 更にそのビューを呼び出して集計するくらいしか思いつかないです。 今回作ろうとしてるのはテスト用のSQLのため、SQL文と実行結果を残したいので、 できればビューやプロシージャーは作らずに、SQLのみで作成したいと考えています。 何か良い方法はありますでしょうか? 宜しくお願い致します。
- ベストアンサー
- Oracle
- Accessでクエリを作った際の順番
Access2003の質問です。 以下のテーブルがあってそれらの項目を抜き出してクエリを作っています。 テーブル1 ・商品CD ・商品名 ・単価 テーブル2 ・No ・売上日 ・得意先CD ・商品CD ・数量 テーブル3 ・得意先CD ・得意先名 ・フリガナ ・郵便番号 ・住所 ・TEL ・担当者CD ・DM テーブル4 ・担当者CD ・担当者名 クエリ ・No(テーブル2) ・売上日(テーブル2) ・得意先CD(テーブル2) ・得意先名(テーブル3) ・担当者CD(テーブル3) ・担当者名(テーブル4) ・商品CD(テーブル2) ・商品名(テーブル1) ・単価(テーブル1) ・数量(テーブル2) クエリを作って、データシートビューに切り替えるとなぜか得意先CDで昇順に並んでいます。 もちろんNoで並べ替えを設定すれば、Noで並べ替わるのですが、なぜ得意先CDで昇順に並ぶのでしょうか? Noが一番左にあるので、Noで並べ替わりそうなものですが・・ 何も並べ替えを設定しないとどのような基準で並ぶのでしょうか? わかる方がいれば教えてください。
- ベストアンサー
- その他MS Office製品
- SQLでの集計について
こんにちわ。以下のようなテーブルから条件に見合う合計を出したいと思いSQLを書いてみたのですが、 思った結果になりません。 テーブルA ID1 得意先Cd 営業所Cd 日付 1 001 001 2005/09/01 2 001 002 2005/09/01 3 001 001 2005/09/03 テーブルB ID2 ID1 部署 数量 金額 1 1 01 1 1000 2 1 01 1 1000 3 1 02 1 1000 4 2 01 1 1000 5 2 01 1 1000 6 3 01 1 1000 7 3 01 1 1000 8 3 02 1 1000 [抽出結果] 得意先Cd 営業所Cd 日付 部署 数量(Sum) 金額(Sum) 001 001 2005/09/01 01 2 2000 001 001 2005/09/01 02 1 1000 001 001 2005/09/03 01 2 2000 001 001 2005/09/03 02 1 1000 001 002 2005/09/01 01 2 2000 [SQL] select 得意先Cd,営業所Cd,日付,部署,SUM(数量) As '数量計',SUM(金額) As '金額計' from テーブルA AA Inner join テーブルB BB ON (AA.ID1 = BB.ID1) group by 得意先Cd,営業所Cd,日付,部署,数量,金額 order by 得意先Cd,営業所Cd,日付,部署 このSQLを実行すると、日付、部署共に同じ場合でも数量・金額が合計値となりません。 得意先Cd 営業所Cd 日付 部署 数量 金額 001 001 2005/09/01 01 1 1000 001 001 2005/09/01 01 1 1000 どのように変更を加えれば、上記の「抽出結果」にできるのでしょうか? よろしくお願いいたします。
- ベストアンサー
- SQL Server
- ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです
ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです。 たとえば、このようなピボットテーブルから、 [A] [B] [C] [D] 1月 Group Account1 Account2 G0 田中 東京 5 加藤 大阪 2 G1 佐藤 大阪 3 G1 田中 名古屋 A列のGroupをキーにして、D列を集計します。 G0の合計は7で個数は2、G1の合計は3で個数は1、という結果を出すにはどのようにしたら良いでしょうか?
- 締切済み
- その他MS Office製品
- 他テーブルの集計結果を別テーブルのカラムに格納
新規テーブル作成時にあるカラムに別のテーブルの集計結果を入れることはできるのでしょうか? 例えば、商品を定義したテーブルの中に、その商品が合計いくつ売れているかを集計するカラムを設置し、常に発注テーブルからその商品の合計発注数を引っ張って来て格納するイメージです。 テーブル作成時のみ集計するではなく、常に参照し動きがあれば数値が自動で変わるようになる方法を探しています。 いちいちselectで集計しなくても始めからカラムに集計値が入っていれば楽だなぁと思い質問しました。 どなたかわかる方いらっしゃいましたらよろしくお願いします。 商品テーブル CREATE TABLE product ( product_no SERIAL NOT NULL, (商品id) product_name VARCHAR(200) NOT NULL, (商品名) product_price VARCHAR(20) NOT NULL, (料金) product_sum INTEGER, (合計発注数)←ここ PRIMARY KEY(product_no) ); 発注テーブル CREATE TABLE order ( order_no SERIAL NOT NULL, (発注id) product_no INTEGER NOT NULL REFERENCES product(product_no) ON UPDATE CASCADE ON DELETE CASCADE,(商品id) order_num INTEGER NOT NULL,(その商品の発注数) order_date TIMESTAMP,(発注日) PRIMARY KEY(order_no) );
- 締切済み
- PostgreSQL
- クエリで試験結果を個人ごとに集計したいのに??
クエリで試験結果を個人ごとに集計したいのに?? Accessド素人です。例えば、商品別に売上金額の集計をしようとした場合、クエリで、「Σ」を押し、売上の合計欄を「グループ化」から「▼」から「合計」にすると商品ごとに集計が出る、と、思っています。 150人分の生徒の過去5回分の試験結果を集計したいのです。テーブルは「生徒マスター」「試験結果累積テーブル」ほかです。リレーションはうまくいってると思っています。 「Σ」ボタンを押して、試験の合計点数の「グループ化」を「合計」にして、「実行」したのですが、結局、個人ごとに集計できていないのです。何が間違っているのでしょうか? もしかして、大きな勘違いをしているのかも? とても心配です。どうか、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
ご回答ありがとうございます。 解決しました。