【发布时间】:2018-07-10 08:35:59
【问题描述】:
我昨天发布了一个问题,Gordon Linoff 回答得很好。
基本上我使用的是 MySQL,需要删除 where 语句,因为它会影响所有列,而这不是需要的,条件聚合是我的答案,它适用于 MySQL。
查询如下:
select
sum(amount) as `total amount for all items sold`,
count(amount) as `Total items sold`,
sum(sale_made between '2018-07-02' and '2018-07-05') as `half total days`
from
sales;
同样,这在 MySQL 中完美运行,但在 SQL Server 2017 中,我在这里遇到错误 '2018-07-05')
【问题讨论】:
-
您在数据库中的日期格式是否相同? “2018-07-05”
-
参考这个:stackoverflow.com/a/5125106/3454439。注意日期使用'/'。
-
我不经常使用 SQL Server,但我猜你可能不得不用不同的方式写你的日期:/我不太确定
-
感谢您的回复,我实际上是在声明变量,例如 - 声明 startDate 日期时间 声明 endDate 日期时间 set endDate = getdate() set startDate = dateadd(day,-11,endDate) --get 上个月从当前日期开始。我以前一直在搞乱 sql server,以前写日期从来没有遇到过这样的问题
-
总和(如果 sale_made 在 '2018-07-02' 和 '2018-07-05' 之间然后 1 else 0 end)
标签: sql sql-server count aggregate-functions between