我有一个warehouse_products表,它定义仓库中有多少产品
假设表中有20条记录/行,有些行可能包含相同的产品id,但位于不同的仓库中。
我需要创建select语句,为每个产品提供一行,并且在该行中我必须具有仓库A和仓库B中的数量。
最后,我将得到包含所有数据的10行数据
alt text http://img199.imageshack.us/img199/1948/stackoverflow.jpg
发布于 2010-04-17 03:40:53
select p1.wh_id as whA_id, p2.wh_id as whB_id,
coalesce(p1.p_id, p2.p_id) as p_id, p1.qty as qty_A,
p2.qty as qty_B, coalesce(p1.enabled, p2.enabled) as enabled
from warehouse_products p1
full outer join warehouse_products p2 on p1.p_id = p2.p_id
and p1.wh_id = 'A' and p2.wh_id = 'B'更新:
我忘了MySql不支持FULL OUTER JOIN。我现在没有时间更新查询,但有一些示例说明如何获得相同的结果here。
发布于 2010-04-17 03:16:44
如下所示:
SELECT id, domain_id, wh_product_id, SUM(item_bom.qty_bom) qty_total
FROM warehouse_products GROUP BY id, domain_id, wh_product_id您将无法显示warehouse_id。我猜也不是wh_product_id,--我在这里包含了它,但是如果有20行而不是10行,就删除它。
https://stackoverflow.com/questions/2655472
复制相似问题