gpt4 book ai didi

MySQL 将 2 个单独的查询合并为 1 个

转载 作者:行者123 更新时间:2023-11-29 17:56:02 25 4
gpt4 key购买 nike

我需要生成一份报告,跟踪某个地点的入库和出库货件,结果是每个 SKU 进出的计数。

“入站”SKU 的dest_loc 设置为“LOC1”,而“出站”SKU 的source_loc 设置为“LOC1”,LOC1 是位置供引用。

有一个特殊的目标值,称为“REC”,意思是“回收”。

每个 SKU 都有 source_loc 和 dest_loc 值(没有 null 情况)。此示例具有 3 个 SKU 和 5 个可能的位置。

sku source_loc  dest_loc
sku1 LOC2 LOC1
sku1 LOC1 LOC1 <-- src=dest is a valid case
sku2 LOC3 LOC1
sku3 LOC4 LOC1
sku3 LOC4 LOC1
sku3 LOC1 LOC4
sku3 LOC1 LOC3
sku1 LOC1 LOC2
sku2 LOC3 LOC1
sku2 LOC1 REC

最终报告如下所示:

sku     inbound     outbound    recycle
sku1 2 1 0
sku2 2 0 1
sku3 2 2 0

我可以使用以下方法获取一半数据:

SELECT sku, count(*)
FROM skudata
WHERE `dest_loc` = "LOC1"
GROUP BY `sku`, `source_loc`
ORDER BY `sku`;

我还需要添加 WHERE source_loc = "LOC1"。我可以分别运行这两个查询,但随后我必须将结果拼接在一起,这将是一件痛苦的事情。我怎样才能更好地编写查询以包含两个“方向”?

最佳答案

您正在查找多个 WHERE 语句。这些可以作为条件放在 SELECT 部分中:

SELECT 
sku,
SUM(IF(dest_loc = 'LOC1', 1, 0)) AS inbound,
SUM(IF(source_loc = 'LOC1', 1, 0)) AS outbound,
SUM(IF(dest_loc = 'REC' , 1, 0)) AS recycle
FROM skudata
GROUP BY sku

关于MySQL 将 2 个单独的查询合并为 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com