灰太狼、
2021-08-11 10:21
采纳率: 100%
浏览 40

sql server语句求解 实在是不会写

sql中有一列 qty,现在想对qty进行包装,有四种包装箱 :A能装36;B能装20;C能装12;D能装5。条件是优先装满大容量的箱子,例如有73件货物,就要分配两个A和一个D。输出四列 A,B,C,D 分别需要多少个。

  • 收藏

3条回答 默认 最新

  • bekote 2021-08-11 10:39
    已采纳
    select qty/36 as A, qty%36/20 as B, qty%36%20/12 as C, (qty%36%20%12/5 + (case when qty%36%20%12%5>0 then 1 else 0 end)) as D from test
    
    1 打赏 评论
  • 自在猫先生 2021-08-11 10:31

    ABCD 四个数据表每个表插入不同的数据,插入数据之前给出判断:
    IF @qty=‘36’
    begin
    insert into A (id,qty)vlues(@id,@qty)
    end
    else if @qty=‘20’
    begin
    insert into A (id,qty)vlues(@id,@qty)
    end
    ..................
    最后通过 id 进行表连接查询出最终的数据。

    1 打赏 评论
  • slevenxulianjie 2021-08-11 10:45

    用取模、取余的运算即可
    1.先模36,得到A包装箱的数量;
    2.模36的余数,再模20,得到B包装箱的数量;
    3.模36再模20的余数,模12,得到C包装箱的数量;
    往下推,得到D包装箱的数量

    1 打赏 评论

相关推荐 更多相似问题