我有一个warehouse_products表定义选择将相似行与某些ID结合的语句?
有多少产品在仓库所以可以说我有20条记录/表中的行,一些行可能含有相同的产品ID,但在不同的仓库
我需要创建select语句,给每一个产品一排,在这一行我必须在仓库A和仓库B的数量..
所以最后我会得到例如10行包含所有的数据
alt text http://img199.imageshack.us/img199/1948/stackoverflow.jpg
我有一个warehouse_products表定义选择将相似行与某些ID结合的语句?
有多少产品在仓库所以可以说我有20条记录/表中的行,一些行可能含有相同的产品ID,但在不同的仓库
我需要创建select语句,给每一个产品一排,在这一行我必须在仓库A和仓库B的数量..
所以最后我会得到例如10行包含所有的数据
alt text http://img199.imageshack.us/img199/1948/stackoverflow.jpg
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。
事情是这样的:
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,删除它。
或许余did't让我自己清楚,,我不想拿数量 我想有 warehouseA_id的总和 - warehouseA_quantity - warehouseB_id - warehouseB_quantity - PRODUCT_ID 所以我想采取两行并合并为1,并更改名称 – vegatron 2010-04-16 22:15:38
@vegatron:看到我更新的查询 – RedFilter 2010-04-17 12:40:12
谢谢 我试过了,它并没有在第一次工作 ,但当我删除了“完整的外部”它的工作,但它只向我显示(wh_id = A AND wh_id = B) 以及仅在仓库A中(或仅在B中)的产品的记录 – vegatron 2010-04-17 13:36:11