Sql server 2012 SQL Server-计算未来五个工作日

Sql server 2012 SQL Server-计算未来五个工作日,sql-server-2012,ssms-2012,Sql Server 2012,Ssms 2012,我有一个要求,我必须计算从今天开始的未来5个工作日,以计算预计未结销售额 我必须在我的sql查询中将其作为过滤器应用。我在下面附上我的查询,其中包括周末。如果有人向我建议一个解决方案,找出除周末(周六和周日)外的未来5个工作日,这将是很有帮助的 选择 s、 salesid, l、 itemid, l、 ShippingDate请求为“发货日期”, 非l.salesqty=0时,则(l.LINEAMOUNT/l.salesqty)*l.REMAINSALESPHYSICAL 0结束为“预计未结销售

我有一个要求,我必须计算从今天开始的未来5个工作日,以计算预计未结销售额

我必须在我的sql查询中将其作为过滤器应用。我在下面附上我的查询,其中包括周末。如果有人向我建议一个解决方案,找出除周末(周六和周日)外的未来5个工作日,这将是很有帮助的

选择
s、 salesid,
l、 itemid,
l、 ShippingDate请求为“发货日期”,
非l.salesqty=0时,则(l.LINEAMOUNT/l.salesqty)*l.REMAINSALESPHYSICAL 0结束为“预计未结销售”,
来自dbo.sales表s
内部连接dbo.salesline l
在s.salesid=l.salesid和s.dataareaid=l.dataareaid和s.partition=l.partition上
l.itemid=i.itemid和l.DATAAREAID=i.DATAAREAID和l.partition=i.partition上的内部联接dbo.inventtable i
l.itemid=ti.itemid和l.DATAAREAID=ti.ITEMDATAAREAID和l.PARTITION=ti.PARTITION上的内部联接dbo.EcoRestrackingDimensionGroupItemTi
内部连接dbo.ECORESTRACKINGDIMENSIONGROUP g on ti.TRACKINGDIMENSIONGROUP=g.recid
哪里
s、 SHIPPINGDATEREQUESTED>=getdate()和

s、 SHIPPINGDATEREQUESTED我建议您创建一个包含所有日期的日历表,并用一列表示工作日(即不是周末或假日)。然后,您可以在日期加入,只包括工作日。你会发现很多互联网搜索的例子,包括。你有没有链接可以使用循环而不是表格来执行这个操作?我不允许为此创建表
select 
s.salesid,
l.itemid,
l.SHIPPINGDATEREQUESTED as 'Ship Date', 
Case when not l.salesqty  = 0 then (l.LINEAMOUNT/l.SALESQTY) * l.REMAINSALESPHYSICAL else 0 end as 'Projected Open Sales', 

from dbo.salestable s 
inner join dbo.salesline l
on s.salesid = l.salesid and s.dataareaid = l.dataareaid and s.partition = l.partition
inner join dbo.inventtable i on l.itemid = i.itemid and l.DATAAREAID = i.DATAAREAID and l.partition = i.PARTITION
inner join dbo.ECORESTRACKINGDIMENSIONGROUPITEM ti on l.itemid = ti.itemid and l.DATAAREAID = ti.ITEMDATAAREAID and l.PARTITION = ti.PARTITION
inner join dbo.ECORESTRACKINGDIMENSIONGROUP g on ti.TRACKINGDIMENSIONGROUP = g.recid

where  
      s.SHIPPINGDATEREQUESTED > = getdate() and
      s.SHIPPINGDATEREQUESTED <= getdate() + 5 and
      and s.salestype in (0,3) 
      and l.salesstatus in (0,1) 
      and not l.salesqty = 0
      order by s.SHIPPINGDATEREQUESTED asc