如何使一些字段的查询相等?

时间:2015-07-13 21:43:42

标签: sql sql-server

我正在尝试下面的代码

SELECT Sum(Price) FROM Faktor WHERE date=date

但它显示了所有价格的总和。我希望显示每天的总和,如:

date ----- sum
2015/5/1  12345
2015/5/2  54124

我也试过下面的代码,但得到错误:

SELECT date,Sum(Price) FROM Faktor WHERE date=date
  

[Err] 42000 - [SQL Server]列'Faktor.date'无效   选择列表,因为它不包含在聚合中   函数或GROUP BY子句。

3 个答案:

答案 0 :(得分:3)

正如错误消息告诉您的那样,您需要使用group by子句,并且 date 列必须在其中。

SELECT date, SUM(Price) 
FROM Faktor 
WHERE date=date -- this looks a bit odd... maybe you want a range of dates or something?
GROUP BY date

使用SQL Server需要对select语句中的所有非聚合列进行分组(例如,与某些版本的MySQL不同)。

答案 1 :(得分:3)

尝试

SELECT [date],SUM([Price])
FROM Faktor
GROUP BY [date]

不确定为什么要使用date = date,所以我把它留了出来。

答案 2 :(得分:1)

SELECT 
    date
    ,SUM(Price)
FROM 
    Faktor
WHERE 
    --add date rules here if you have date criteria  i.e. date >= 'someDate'
GROUP BY
    date