我认为很难在我的旧帖子上找到我的编辑,所以我创建了一个新的thead:
解决这个问题之后,我试着稍微训练一下SQL。现在我尝试和早些时候一样,而不是国家/地区,我想要'类别'在那里(之前的帖子是关于进行查询,我可以在数据库中看到2007年和2008年美国和世界其他地区的销售净额,现在我尝试用年份和类别开始字母' A)当我试图做出这样的询问时,我完全迷失了自己 我想我需要事先展示实体: (在行= tablename上)
分类
类别
类别名称
产品
的ProdID
价格
orderlines
订单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);
答案 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);