将数据转换成开合对的sql查询

rnmwe5a2  于 2021-07-29  发布在  Java
关注(0)|答案(0)|浏览(254)

我有一个包含两列的表,即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

但我离理想的结果还差得很远。我得到以下信息:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题