首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到SKU时返回0数量

找不到SKU时返回0数量
EN

Stack Overflow用户
提问于 2018-06-14 00:23:23
回答 2查看 34关注 0票数 1

我的数据库中有两个表:warehousewarehouse_inventory

我的warehouse表如下所示:

代码语言:javascript
运行
复制
 name   | warehouse_id   | 
--------+----------------|
 name_1 | warehouse_id_1 |
 name_2 | warehouse_id_2 |
 name_3 | warehouse_id_3 |

我的warehouse_inventory表如下所示:

代码语言:javascript
运行
复制
 warehouse_id   | SKU         | quantity |         
----------------+-------------+----------|
 warehouse_id_1 | item_sku_1  | 100      |
 warehouse_id_2 | item_sku_1  | 100      |

现在,我正在寻找一个解决方案,让我得到这样的结果:

代码语言:javascript
运行
复制
 name   | warehouse_id   | SKU        | quantity |
--------+-----------------------------+----------|
 name_1 | warehouse_id_1 | item_sku_1 | 100      |
 name_1 | warehouse_id_1 | item_sku_2 | 0        |
 name_2 | warehouse_id_2 | item_sku_1 | 100      |
 name_2 | warehouse_id_2 | item_sku_2 | 0        |
 name_3 | warehouse_id_3 | item_sku_1 | 0        |
 name_3 | warehouse_id_3 | item_sku_2 | 0        |

当我在SQL查询中选择with where条件时:

SELECT * FROM [what's here?] WHERE warehouse_inventory.SKU IN ('item_sku_1', 'item_sku_2')

EN

回答 2

Stack Overflow用户

发布于 2018-06-14 00:41:12

如果您的数据库中没有包含所有SKU的表,则无法执行此操作。

因此,假设您的所有item主数据都有一个名为item的表,您应该这样做:

代码语言:javascript
运行
复制
SELECT W0.name, W0.warehouse_id, I0.SKU, ISNULL(W1.quatity, 0) as 'Quantity'
FROM [item] I0
CROSS JOIN [warehouse] W0
LEFT JOIN [warehouse_inventory] W1 ON W1.warehouse_id = W0.warehouse_id AND W1.SKU = I0.SKU

在SAP Business One上,我们这样做:

代码语言:javascript
运行
复制
SELECT W0.WhsName, W0.WhsCode, I0.ItemCode, ISNULL(W1.OnHand, 0) as 'Quantity'
FROM OITM I0
CROSS JOIN OWHS W0
LEFT JOIN OITW W1 ON W1.WhsCode = W0.WhsCode AND W1.ItemCode = I0.ItemCode
ORDER BY 1 DESC
票数 0
EN

Stack Overflow用户

发布于 2018-06-14 01:58:53

您可以在LEFT JOIN中使用CROSS JOIN

代码语言:javascript
运行
复制
select w.name, w.warehouse_id, wii.SKU, coalesce(i.quantity, 0) as quantity 
from warehouse w cross join 
     warehouse_inventory wii left join
     warehouse_inventory i 
     on i.warehouse_id = w.warehouse_id and i.SKU = wii.SKU
order by w.name;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50842016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档