首页 > 解决方案 > SQL Server 基于拆分行的减法值

问题描述

我不确定我的问题是否正确,但我想根据以下输入生成输出

输入数据

然后根据卡顿数量拆分数据。下面是输出。

是否可以使用 SQL 来实现这一点?就像取消基于数量的枢轴一样

卡顿数量。

输出

或像这样输出。

在此处输入图像描述

标签: sqlsql-serverunpivot

解决方案


请试试:

;with T as(
    select *, 1 as RNum, Quantity/Karton Split 
    from tbl

    union all

    select 
        T.Num, T.Quantity-T.Karton, T.Karton, T.RNum+1, T.Split 
    from 
        T join tbl T1 on T.Num=T1.Num 
    where 
        T.Split>=1 and T.Quantity-T.Karton>0
)
select Num, Quantity, Karton from T  order by Num, Quantity Desc

小提琴演示在这里


推荐阅读