我将 JSON 字符串传递给存储过程以插入仓库库存。
有时,会有多个具有相同产品的订单项,在相同的货架上、相同的托盘 (LPN) 上、具有相同的日期。我想将它们汇总到表中的一行中。
JSON 表示已接收并存放到某个位置的各个行。这里有 2 个相同的项目:
[{"StockCode": "ABC123", "Qty": "200", "Bin": "E4B4_L", "LPN": "1234", "PutDate": "2022-01-21 18:35:53 UTC"}, {"StockCode": "ABC123", "Qty": "400", "Bin": "E4B4_L", "LPN": "1234", "PutDate": "2022-01-21 18:36:43 UTC"}]
Run Code Online (Sandbox Code Playgroud)
所以:
ABC | 200 | 2022-01-21 00:00:00.000 | LPN1234
ABC | 400 | 2022-01-21 00:00:00.000 | LPN1234
Run Code Online (Sandbox Code Playgroud)
应汇总为:
ABC | 600 | 2022-01-21 00:00:00.000 | LPN1234
Run Code Online (Sandbox Code Playgroud)
我尝试对数量进行 GROUP BY 和 SUM,但表中的结果行仍然是 2 个单独的行。我意识到由于时间戳的原因 PutDate 不一样,所以我认为肯定将其转换为 DATE 可以解决这个问题,但事实并非如此。
SQL脚本:
ALTER Procedure spc_PutAway
(@json NVARCHAR(MAX) = '')
AS …Run Code Online (Sandbox Code Playgroud)