灰太狼、 2022-05-31 08:51 采纳率: 100%
浏览 49
已结题

SQL server 对数据进行拆分

sql server 想对信息进行分组 每组最多50个 多出的部分需要增加一行
表结构如下
规格(ItmSpec) 数量(Qty)
Spec1 69
Spec2 148
Spec3 98
想要变成
规格(ItmSpec) 数量(Qty)
Spec1 50
Spec1 19
Spec2 50
Spec2 50
Spec2 48
Spec3 50
Spec3 48

  • 写回答

3条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-05-31 23:53
    关注

    一个简单的with递归就行了

    create table test_t (ItmSpec varchar(10),Qty int);
    insert into test_t values ('Spec1', 69);
    insert into test_t values ('Spec2', 148);
    insert into test_t values ('Spec3', 98);
    
    with t as (
    select ItmSpec,case when Qty>=50 then 50 else Qty end  q, Qty from test_t
    union all
    select ItmSpec,case when Qty-q>=50 then 50 else Qty-q end ,Qty-q  from t where Qty-q>0)
    select ItmSpec,q from t order by 1,2 desc;
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月15日
  • 已采纳回答 6月7日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊