MySQL查询特定年份和类别

时间:2013-04-02 03:21:25

标签: mysql sql database

我认为很难在我的旧帖子上找到我的编辑,所以我创建了一个新的thead:

解决这个问题之后,我试着稍微训练一下SQL。现在我尝试和早些时候一样,而不是国家/地区,我想要'类别'在那里(之前的帖子是关于进行查询,我可以在数据库中看到2007年和2008年美国和世界其他地区的销售净额,现在我尝试用年份和类别开始字母' A)当我试图做出这样的询问时,我完全迷失了自己 我想我需要事先展示实体: (在行= tablename上)

  • 分类


  • 类别

  • 类别名称

  • 产品


  • 的ProdID

  • 分类
  • 标题
  • 演员
  • 价格

  • orderlines


  • 订单ID

  • orderlineid
  • 到产品编号

  • 订单


  • 订单ID

  • 订购日期
  • 客户id
  • netamount

到目前为止我的查询:(绝对没有任何意义:/)

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);

1 个答案:

答案 0 :(得分: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);