0

古い投稿で私の編集を見つけるのは難しいと思うので、新しいスレッドを作成します。

これを非常に迅速に解決した後、SQL で少しトレーニングするために少し遊んでみました。国/地域の代わりに、そこに「カテゴリ」が必要です (前の投稿は、米国の純売上高と世界のその他の地域の売上高を確認できるクエリの作成に関するものでした)。データベース内の 2007 年と 2008 年は、文字 'A' で始まる年とカテゴリで作成しようとしています) このようなクエリを作成しようとしたときに、完全に夢中になりました。エンティティを表示する必要があると思います事前に: (行の上 = テーブル名)

  • カテゴリー


  • カテゴリー

  • 種別名

  • 製品


  • 製品 ID

  • カテゴリー
  • 題名
  • 俳優
  • 価格

  • オーダーライン


  • オーダーID

  • オーダーラインID
  • プロディッド

  • 注文


  • オーダーID

  • 注文日
  • 顧客ID
  • 正味金額

これまでの私のクエリ:(その背後にはまったく意味がありません:/)

SELECT year(orderdate) AS YEAR,
       categoryname,
       sum(custamot)Totsales FROM
  (SELECT o.orders, sum(netamount) custamot, c.categoryname
   FROM products o
   JOIN categories c ON o.category = c.category
   WHERE categoryname LIKE 'A%'
   GROUP BY c.categoryname) iv
GROUP BY YEAR(orderdate);
4

1 に答える 1

0

サブクエリはまったく必要ありません。必要なすべてのテーブルを結合し、集計に適した group by 句を作成するだけです。次のような結果になります。

SELECT YEAR(o.orderdate) AS YEAR,
       c.Categoryname,
       SUM(o.netamount) AS Totsales
FROM orders o
INNER JOIN orderlines ol ON ol.orderid = o.orderid
INNER JOIN Products p ON p.ProdID = ol.Prodid
INNER JOIN categories c ON c.Category = p.Category
WHERE c.Categoryname LIKE 'A%'
GROUP BY c.Categoryname, YEAR(o.orderdate);
于 2013-04-02T08:40:15.920 に答える