SQL Server查询,指示3个不同时间段内的销售金额

SQL Server查询,指示3个不同时间段内的销售金额,sql,sql-server,Sql,Sql Server,我试图编写一个SQL查询,从表中选择一些数据。我想要的数据包括一件商品售出的次数,目标是在列中显示该商品在30天、60天和90天内售出的次数。我可以编写3个单独的查询来完成这项工作,但我想编写一个查询,以便数据都在一个结果表中。这就是我到目前为止所做的: DECLARE @30daysago DATETIME = DATEADD(DAY,-30,CAST(GETDATE() AS DATE)); DECLARE @90daysago DATETIME = DATEADD(DAY,-90,CAST

我试图编写一个SQL查询,从表中选择一些数据。我想要的数据包括一件商品售出的次数,目标是在列中显示该商品在30天、60天和90天内售出的次数。我可以编写3个单独的查询来完成这项工作,但我想编写一个查询,以便数据都在一个结果表中。这就是我到目前为止所做的:

DECLARE @30daysago DATETIME = DATEADD(DAY,-30,CAST(GETDATE() AS DATE));
DECLARE @90daysago DATETIME = DATEADD(DAY,-90,CAST(GETDATE() AS DATE));

Set NOCOUNT ON
Select company_info_1 from setup

select ii.itemnum, i.itemname,i.price, d.description, count(ii.itemnum)
from invoice_itemized ii
join invoice_totals IT on it.invoice_number=ii.invoice_number
join inventory i on i.itemnum=ii.itemnum
join departments d on d.dept_id=i.dept_id
where it.datetime > @30daysago and len(ii.itemnum) >4
group by ii.itemnum, i.itemname, d.description, i.price
order by count(ii.itemnum) desc


使用具有条件聚合的单个查询:

选择
ii.itemnum,
i、 项目名称,
i、 价格,
d、 描述,
将(ii.itemnum)计算为总计,
计数(当it.datetime>DATEADD(DAY,-30,CAST(GETDATE()作为日期))时的大小写)
然后ii.itemnum END)作为30daysago,
计数(it.datetime>DATEADD(DAY,-90,CAST(GETDATE()作为日期))时的大小写)
然后ii.itemnum END)作为90天Sago
来自发票_分项ii
内部联接发票将其合计
在上面。发票号=二。发票号
内部连接清单I
关于i.itemnum=ii.itemnum
内部连接部门d
在d.dept\u id=i.dept\u id上
哪里
LEN(ii.itemnum)>4
分组
ii.itemnum,
i、 项目名称,
d、 描述,
i、 价格
订购人
ii.itemnum DESC;