假设您有一个包含以下条目的sql server数据库
CarMaker CarModel CarSalesPrice CarSalesDate
---------------------------------------------------------
Maker A A Model X V6 20000 12-23-2018
Maker B B Model Z V6 30000 02-09-2019
Maker C B Model Z V6 40000 04-08-2019
我正在尝试编写查询以生成过去30天每个汽车制造商和模型的总销售价格,但我遇到了麻烦
SELECT
CarModel, CarMaker, Count(totalSalesPrice)
FROM
dbo.Cars
WHERE
carSalesDate >= DATEADD(day,-30, getdate())
此代码不起作用,这是我想到完成任务的唯一方法
答案 0 :(得分:1)
您还需要使用GROUP BY
按汽车型号和制造商进行汇总:
SELECT
CarModel,
CarMaker,
SUM(totalSalesPrice) AS totalSales
FROM dbo.Cars
WHERE
carSalesDate >= DATEADD(day, -30, GETDATE())
GROUP BY
CarModel,
CarMaker;
答案 1 :(得分:0)
您需要一个汇总和sum()
。我还建议您修复日期比较:
SELECT CarModel, CarMaker, SUM(totalSalesPrice)
FROM dbo.Cars
WHERE carSalesDate >= DATEADD(day,- 30, CONVERT(DATE, getdate()));
GETDATE()
具有时间成分,这具有误导性。我不确定您是否要-30天或-29天。