SQL初心者のための横表示クエリとは?
- SQL初心者の方でも簡単に理解できるような、結果を横に表示するSQLクエリをご紹介します。
- 横向きに表示するためのクエリを使って、縦に表示されていたデータをわかりやすく整理しましょう。
- 具体的なクエリの例もご紹介しますので、ぜひ参考にしてください。
- ベストアンサー
結果を横に表示するSQLを教えてください
SQL初心者です。 以下のような縦に表示されるクエリを横向きに表示する際のクエリを教えて頂けないでしょうか。 現在のクエリ結果 日付 種類 合計 4月1日 りんご 10 4月1日 みかん 20 4月2日 みかん 15 4月2日 りんご 30 4月3日 みかん 40 4月3日 りんご 5 ※クエリ詳細 select 日付,種類, sum (数量) as 合計 from テストテーブル group by 日付,種類 order by 日付 ※元データ 元データ 日付 種類 数量 4月1日 りんご 5 4月1日 りんご 2 4月1日 りんご 3 4月1日 みかん 10 4月1日 みかん 3 4月1日 みかん 7 上記を以下のような結果にしたいです。 種類 4月1日 4月2日 4月3日 りんご 10 30 5 みかん 20 15 40 わかりにくい説明で申し訳ございません。 どなたかご回答頂ければ幸いです。 よろしくお願い致します。
- miiitan7
- お礼率0% (0/2)
- オフィス系ソフト
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- SQLでグループ化して降順表示がうまくいきません
個人的にMysql、php環境でサイトを作っております。 そこで、素人質問で申し訳ありませんが、SQLでお伺いしたい点があります。 例えば下のようなテーブルがあります。 ▽果物テーブル 果物ID | 果物名 | 売れた日付 1 | リンゴ | 2008/11/1 2 | みかん | 2008/11/2 3 | みかん | 2008/11/3 4 | リンゴ | 2008/11/4 これを、 『最近売れた』果物順に、『グループ化』して並べ替えたいと思い、 下記のようなsqlを組みました。 $sql = "SELECT 果物名, FROM 果物テーブル GROUP BY 果物名 ORDER BY 売れた日付 DESC"; 意図としてはリンゴ、みかんの順に並べ替えたいのですが、 みかん、リンゴの順に表示されてしまいます。 想像では、グループ化したとき、古い日付の方が残ってしまい、 | リンゴ | 2008/11/1 | みかん | 2008/11/2 この部分を対象にして日付を降順にしてしまうからだと思うのですが、 これをうまく解決する方法が分かりません。 MSアクセスなどですと先に二重にクエリをかけるなどすることで 「先に降順で並べ替えたクエリを出し、その後グループ化させる」 など処理が簡単なのですが、phpではどうするのかいまひとつ分からず・・・ 申し訳ありませんがよろしくお願いします。
- ベストアンサー
- PHP
- EXCELピボットテーブルの集計項目を追加したい
ピボットテーブルで集計した結果に集計項目を追加したいのですが、 可能でしょうか? 追加したい項目は、数量合計÷担当件数です。 <元データ> 担当 支店 種目 数量 川上 東京 りんご 50 川上 名古屋 りんご 20 川上 埼玉 みかん 10 川上 埼玉 りんご 5 鈴木 大阪 りんご 25 鈴木 神戸 みかん 10 佐藤 福岡 みかん 30 <ピボットテーブル> みかん みかん りんご りんご 担当 合計数量 件数 合計数量 件数 佐藤 30 1 川上 10 1 75 3 鈴木 10 1 25 1 計 50 3 100 4 上記このテーブルに「みかん合計数量÷みかん件数」「りんご合計数量÷りんご件数」で 計算した項目「みかん平均」「りんご平均」を追加して、以下のようにしたいと思っています。 担当 みかん みかん平均 りんご りんご平均 佐藤 30 30.0 川上 10 10.0 75 25.0 鈴木 10 10.0 25 25.0 総計 50 16.7 100 25.0 以上
- ベストアンサー
- オフィス系ソフト
- (2)-SQL文の書き方を教えてください。
table項目:名称、日付、数量。 以上のtabelから以下のクエリーをつくりたいです: クエリー項目:名称、当日数量、当月数量。 日付の値は、フォーム上で指定する。 具体的に:フォーム上日付欄に2003/10/01と2003/10/30を指定し、実行すると、当日数量は、2003/10/30その日の合計数が出る。当月数量に指定された10/01から10/30までの数字の合計がでる。 今、片方だけ条件のSQL文を書けるですが、二つ条件のSQL文がとても難しい。 そうゆうSQL文を教えていただけませんか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- (エクセル)積み上げ棒グラフの作成について
エクセルで積み上げの棒グラフを作成しようと思います。 既に表にデータが入力されており、これをグラフにします。 (表) 品目 数量 1月1日 りんご 10 1月2日 みかん 20 1月3日 ぶどう 30 1月4日 りんご 10 1月5日 みかん 20 1月6日 ぶどう 30 1月7日 りんご 10 1月8日 みかん 20 1月9日 ぶどう 30 (積み上げ棒グラフ) 日付の列は無視して、品目(りんご、みかん、ぶどう)の数量を積み上げていきたいです。 完成イメージとしては りんご 10+10+10の積み上げ みかん 20+20+20の積み上げ ぶどう 30+30+30の積み上げ に出来たらと思ってます。 積み上げグラフを選択しても、 9つの項目(りんご3個、みかん3個、ぶどう3個)がそれぞれ独立して表示されてしまい、積み上げになりません。 項目軸のラベルを変更しても同じ結果です。 どのようにしたら出来ますでしょうか。 りんご 10 10 10 みかん 20 20 20 ぶどう 30 30 30 と、表を作り直したらできるかと思うのですが、できれば今の表のままで作成できたらと思います。 ちなみに将来的には、さらに行が増えていきます。 積み上げグラフでも「横棒」で作成しようとしていますが、もし縦棒なら出来るならば縦棒でも良いです。 よろしくお願いします。
- 締切済み
- Excel(エクセル)
- accessのクロス集計クエリについて
大変初歩的な質問で申し訳ないのですが、今、accessの基礎本をみて自分でデータを作って、動作を一つずつ確認していっているのですが、 日付 商品名 個数 5月1日 みかん 6 5月4日 りんご 5 5月9日 りんご 2 6月1日 みかん 7 6月25日 りんご 5 7月2日 なし 7 7月23日 みかん 6 というデータを作って 商品名 5月 6月・・・ みかん 個数(合計) りんご なし のようになるのを期待していたのですが、 数値が表示されません。 四半期や年を日付フィールドに設定すると表示されます。 どこを見直せばよろしいでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 同じ日にちの件数を制限して抽出する
日付ごとのデータがあり、同じ日付の数は日によって違い、10個の時も20個の時もあります。 そのデータを、同じ日付のデータは14個以下に制限し、それ以上は無視して別シートに抽出したいのですが。(エクセル2010) 下記のようなシート1のデータを A B C 1 11月1日 りんご A社 2 11月1日 みかん C社 3 11月1日 とまと B社 ・ ・ 14 11月1日 みかん D社 15 11月1日 とまと H社 16 11月2日 ばなな B社 17 11月2日 りんご D社 別シートに下記のように抽出 A B C 1 11月1日 りんご A社 2 11月1日 みかん C社 3 11月1日 とまと B社 ・ ・ 14 11月1日 みかん D社 15 11月2日 ばなな B社 16 11月2日 りんご D社 どなたか教えていただける方がいましたらよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- SQL文でクロス集計をしたい
アクセスでクロス集計のSQL文で作りたいと思っています。 このようなデータがあります 年月 支払先 数量 金額 201301 A 10 1000 201302 A 5 500 201302 B 20 2000 201301 C 10 3000 201303 C 15 1500 このデータを下記のように表示したいのですが、 分からなくて困っています。 支払先 データ 201301 201302 201303 A 数量 10 5 A 金額 1000 500 B 数量 20 B 金額 2000 C 数量 10 15 C 金額 3000 1500 合計 数量 20 25 15 合計 金額 4000 2500 1500 どのようにすれば実現出来ますか? 今は、 SELECT 支払先, "数量" AS データ, Sum(IIf([年月]='201301',[数量],0)) AS 201301, Sum(IIf([年月]='201302',[数量],0)) AS 201302, Sum(IIf([年月]='201303',[数量],0)) AS 201303, FROM T_データ GROUP BY 支払先; のクロス集計を 数量と金額、数量の合計と金額の合計でクロス集計をしたクエリを UNIONで実現しています。 出来れば数量と金額は1つのクエリで実現したいと思いますが方法があれば教えて頂きたい と思います。 どうぞ、よろしくお願い致します。
- ベストアンサー
- その他(データベース)
- 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
- 2つのDBからマージした結果をSQLで抽出するには
■下記の様な2つのデータベースとデータがあった場合に算出結果の様な形でデータを抽出したいのですが、SQLで実装するにはどうすれば良いでしょうか? データベースはOracleを使用しています。 【データベースA】 担当者 商品 担当者A りんご 担当者B りんご 【データベースB】 担当者 商品 担当者A みかん 担当者C みかん ■算出結果 担当者 商品 担当者A りんご、みかん 担当者B りんご 担当者C みかん
- 締切済み
- Oracle
- 種類別・期間別の集計
下のような表での種類別・期間別の集計をしたいのですが? A B C 1 8/1 10.000 りんご 2 8/2 50.000 みかん 3 8/4 12.000 りんご 4 10.000 ぶどう ・ 10 8/15 5.000 みかん 11 8/16 25.000 ぶどう ・ 26 8/30 13.000 りんご 35 8/31 8.000 みかん 毎月1日から15日と16日から月末までの各”りんご””みかん”2ぶどう”の個別の集計をしたいのですが日付が入る関数が分かりません。 月は毎月替わりますが、1日から15日と16日から月末は変わりません。 日付のセルには空白のセルが入る事があります。 よろしくお願いします。
- ベストアンサー
- 財務・会計・経理