我有一个包含两列的表,即recordnum(int)和qty(float),该表中的数据如下所示:
我试图提出一个查询,可以将其转换为:
我正在使用sql server 2012。
我们得准备一对开盘和收盘的记录号码。逻辑如下:
第一行:1001 record num是数量为100的期初记录
第二行:100个数量中的50个由记录num 1002关闭
第3行:1001的剩余50个数量被1003关闭(数量为60)
第四行:关闭50后,1003仍将有-10个可用数量。
根据要求,我将尝试添加到描述中:
select
t.openRecordNum
,t.closingRecordNum
,t.qty
from
(
select *
, openRecordNum = case when t.openQ>0 then min(t.recordNumber) over( order by seqId)
else
max(t.recordNumber) over( order by seqId)
end
, closingRecordNum = Max(t.recordNumber) over( order by seqId)
from
(
select
*
,openQ = sum(qty) over( order by seqId)
from Table_1
) t
) t
但我离理想的结果还差得很远。我得到以下信息:
暂无答案!
目前还没有任何答案,快来回答吧!