38 lines
1.8 KiB
SQL
38 lines
1.8 KiB
SQL
-- 装箱单:按 排产号 + 箱号 取箱内明细,并双表 LEFT JOIN 取产品信息。
|
||
-- 参数:paichan_no (str, 排产号) / box_no (int, 箱号)
|
||
-- 注:load_sql 会剥离整行 -- 注释,故注释里可自由书写中文。
|
||
--
|
||
-- 数据来源:
|
||
-- CargoTrace.finished_goods_box 箱头(排产号 + 箱号 + 装箱时间)
|
||
-- CargoTrace.finished_goods_box_item 箱内明细(总排号 + 装入数量)
|
||
-- productionContractData.26年压力表合同数据 / 26年温度计合同数据 产品信息
|
||
--
|
||
-- 产品信息双表取值:同一总排号只命中压力表或温度计其中一张表。
|
||
-- 用双 LEFT JOIN + COALESCE 取产品字段,避免前缀路由出错(26BW 不会被 26B% 误匹配)。
|
||
--
|
||
-- 字段说明(注意历史遗留命名):
|
||
-- product_name:取自合同表 [客户名称] 字段,但实际存的是产品名称(历史笔误,系统已用,不改字段名)
|
||
-- weihao:位号,多数订单为空,有则显示、无则留白
|
||
-- remark:备注
|
||
SELECT b.paichan_no,
|
||
b.box_no,
|
||
b.created_at,
|
||
i.zongpai_no,
|
||
i.quantity AS box_qty,
|
||
COALESCE(p.[客户名称], t.[客户名称]) AS product_name,
|
||
COALESCE(p.[产品型号], t.[产品型号]) AS model,
|
||
COALESCE(p.[量程], t.[量程]) AS range_,
|
||
COALESCE(p.[位号], t.[位号]) AS weihao,
|
||
COALESCE(p.[备注], t.[备注]) AS remark,
|
||
COALESCE(p.[订单号], t.[订单号]) AS order_no
|
||
FROM CargoTrace.finished_goods_box b
|
||
JOIN CargoTrace.finished_goods_box_item i
|
||
ON i.box_id = b.id
|
||
LEFT JOIN [productionContractData].[26年压力表合同数据] p
|
||
ON p.[总排号] = i.zongpai_no
|
||
LEFT JOIN [productionContractData].[26年温度计合同数据] t
|
||
ON t.[总排号] = i.zongpai_no
|
||
WHERE b.paichan_no = :paichan_no
|
||
AND b.box_no = :box_no
|
||
ORDER BY i.id;
|