我已经尝试了几个小时来解决这个问题,但它仍然不起作用..
我有两张桌子:
记录如下:
价格
product_name price
--------------------
Milk 0.80
Cheese 1.00
Bread 1.50
销售
customer_id product_name number_purchases
-------------------------------------------
15 Milk 2
15 Cheese 1
2 Butter 2
2 Candy 4
80 Bread 1
...
...
15 Bread 2
15 Milk 1
每周跟踪销售情况,客户可以在购买相同商品的情况下在数据库中多次出现(例如客户15每周购买两次牛奶,因此客户15购买了3包牛奶。
我想找到某个客户: 他/她购买的每件产品,以及相应的产品购买总数,以及相应的产品价格。
这是我到目前为止没有错误:
SELECT product_name, SUM(number_purchases)
FROM sales S
WHERE customer_id = 80
GROUP BY product_name;
但是当我想在代码中添加一些行时,为了获得相应的价格,它也不起作用。我试过的其中一件事:
SELECT product_name, SUM(number_purchases), price
FROM sales S, prices P
WHERE S.product_name = P.productname
AND customer_id = 80
GROUP BY product_name;
这只在一个查询中是不可能的,还是我错过了什么?
非常感谢
答案 0 :(得分:3)
您的上一个查询是customer_id
分组。尝试将其更改为product_name
:
SELECT S.product_name, SUM(S.number_purchases), P.price
FROM sales S, prices P
WHERE S.product_name = P.product_name
AND S.customer_id = 80
GROUP BY S.product_name;
您还应该永远在from
子句中使用逗号。而是在第一个示例中使用显式连接,并在price
上聚合(或将price
移动到group by
子句):
SELECT S.product_name, SUM(S.number_purchases), sum(P.price) total_price
FROM sales S join
prices P
ON S.product_name = P.product_name
WHERE S.customer_id = 80
GROUP BY S.product_name;
答案 1 :(得分:0)
您的查询应该是:
SELECT product_name, SUM(number_purchases), price
FROM sales S, prices P
WHERE S.product_name = P.productname
AND customer_id = 80
GROUP BY P.productname;
答案 2 :(得分:0)
使用别名
SELECT s.product_name, SUM(number_purchases), price
FROM sales S, prices P
WHERE S.product_name = P.productname
AND customer_id = 80
GROUP BY s.product_name;
DBMS - 不知道product_name得到
P.S。而且我认为你必须在
组中加价