You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2016中先托盘后箱计算可用量整数值的实现问询

SQL Server 2016 实现托盘与箱数计算

原始数据

Availableqty/palletqty/box
48002400120
15001000100
3002000100

需求说明

新增pallets和boxes两列,计算逻辑:

  1. 用Available除以qty/pallet取整数部分,得到完整托盘数
  2. 剩余数量再除以qty/box取整数部分,得到完整箱数(结果仅保留整数,不四舍五入)

目标结果

Availableqty/palletqty/boxpalletsboxes
4800240012020
1500100010015
300200010003

SQL 实现方案

基础版本(假设除数不为0)

SELECT 
    Available,
    [qty/pallet],
    [qty/box],
    -- 计算完整托盘数:整数除法自动截断小数
    Available / [qty/pallet] AS pallets,
    -- 先取剩余数量,再计算完整箱数
    (Available % [qty/pallet]) / [qty/box] AS boxes
FROM 
    YourTableName; -- 替换为实际表名

防除数为0版本(更健壮)

如果存在qty/pallet或qty/box为0的情况,可通过CASE语句处理:

SELECT 
    Available,
    [qty/pallet],
    [qty/box],
    CASE WHEN [qty/pallet] = 0 THEN 0 ELSE Available / [qty/pallet] END AS pallets,
    CASE 
        WHEN [qty/box] = 0 THEN 0 
        ELSE (Available % [qty/pallet]) / [qty/box] 
    END AS boxes
FROM 
    YourTableName; -- 替换为实际表名

逻辑说明

  • SQL Server 中整数间的除法运算会自动截断小数部分,直接得到符合要求的整数结果
  • %是取模运算符,用于计算分配完托盘后剩余的货品数量

内容的提问来源于stack exchange,提问作者VQB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 18:16:14