2016-05-31 100 views
0

我试图计算一个客户所做的所有购买的总和。使用金额和在哪里

我有一个包含所有购买(CustomerID,ItemID,金额),客户(客户ID,姓名,地址)和项目(ID,价格)表的表格。

这是我目前最好的尝试,但我得到一个错误,我如何使用群(这是奇怪的自我)。

SELECT name,address 
    FROM (purchases as p join customer as c on p.customerID = c.customerID 
    join item as i on p.ean = i.ean) 
    where sum(i.outprice * p.amount) >2500 
    group by p.customerID; 

此查询下面的工作完美。但是,所有我想要做的是只显示其中 总和(i.outprice * p.amount)> X对于任何给定X.

SELECT name,address,sum(i.outprice * p.amount) 
    FROM (purchases as p join customer as c on p.customerID = c.customerID 
    join item as i on p.ean = i.ean) 
    group by p.customerID; 

我应该如何去这样做呢?

谢谢!

+0

一般GROUP BY规则说: 如果指定了GROUP BY子句,在SELECT列表中的每个列引用必须明确指出的一个分组列或者是一组函数的参数。 – jarlh

回答

2
SELECT name,address 
    FROM (purchases as p join customer as c on p.customerID = c.customerID 
    join item as i on p.ean = i.ean) 
    group by p.customerID 
having sum(i.outprice * p.amount) >2500 
+0

谢谢!奇迹般有效。 – Elimination

+0

添加到上面的jarlh的注释中,即使MySQL允许此查询以正确的方式运行,也就是在“select”列表中说'min(address)'。 – shawnt00