第一个问题,希望你可以帮助我,因为我似乎无法达到我想要的结果。我写了下面的代码
DECLARE @Date datetime = '20160102'
DECLARE @Part varchar(9) = '49ESNWH00'
DECLARE @Size Varchar(9) = '3050X2050'
;
With Parents as
(
Select
par.StockTrans_Id, Par.PartNo,
par.TransactionDate, par.Size,
Par.Quantity
from
StockTrans as Par
Where
Par.ParentYN = 'Y'
And Par.TransactionDate <= @Date
And Par.PartNo = @Part
)
Select
@Date as Date,
par.PartNo, par.size,
SUM(st.Quantity) [Quantity]
from
Parents as Par
left Join
StockTrans as st on Case
When st.RefNo < 10 then ('00'+ Convert(Varchar,st.refno)) + '.' + st.PartNo
When st.RefNo < 100 then ('0'+ Convert(Varchar,st.refno)) + '.' + st.PartNo
Else Convert(Varchar,st.refno) + '.' + st.PartNo
end = par.StockTrans_Id
Where
St.TransactionDate <= @date
and par.Size = @Size
group by
Par.PartNo, par.Size
having
SUM(st.Quantity) > 0
这会返回以下数据:
此数据是正确的,如果您更改标量变量@Date
中的日期,那么它很高兴地告诉您该日期的库存位置。
我需要做的是在一组日期内的日子里出现这个股票头寸。有效地生成如下所示的数据表(开始和结束日期也是变量):
如何按日期重复查询?
答案 0 :(得分:0)
您可以简单地将日期范围存储在临时表中,并使用“And Par.TransactionDate”将该表连接起来。它应该很乐意为您提供“日期范围”
中所有日期的结果