我有5个表如下:
Serial_Number|Product_ID|Mfg_ID|Distribution_Type
AG0026 | CKJUT |UGXT03|A
BX3234 | NPLPT |UXXP32|B
LP3269 | KNGTP |AKML63|A
..... ..... ... ..
ProductDetails2:
Serial_Number|Product_Type|Unit
NG2164 |S |10
LT4598 |L |13
BX3234 |L |21
Mfgaccnt:
SLNO|Product_Code|Mfg_Code
1 |T03 |T03
2 |L63 |L63
3 |BXT |null
MfgDetails1:
mfg_code|Mfg_Name
T03 | xy.pvt.ltd
L63 | LP.pvt.ltd
MfgDetails2:
Sel_ID|Mfg_Name
UXXP32|ab.pvt.ltd
NTLP25|cd.pvt.ltd
现在我需要生成一个报告,我需要关注列
条件:
所以我的查询:
SELECT
pd1.serial_number AS 'Serial Number',Pd1.product_ID AS 'Product ID',
pd1.mfg_id,
CASE WHEN pd1.distribution_type='A' THEN md1.Mfg_Name
ELSE md2.Mfg_Name
END AS 'MFG Name',
pd1.distribution_type,
pd2.unit
FROM
ProductDetails1 pd1
JOIN
ProductDetails2 pd2 ON pd1.serial_number = pd2.serial_number
JOIN
Mfgaccnt ON Mfgaccnt.Product_Code = Right(Pd1.Mfg_ID,3)
JOIN
MfgDetails1 ON Md1.Mfg_Code = Mfgaccnt.Product_Code
LEFT JOIN
MfgDetails2 md2 ON pd1.mfg_Id = md2.sel_ID
WHERE
pd2.product_type = 'L'
但结果并未返回任何B分销类型的产品。请帮帮我
答案 0 :(得分:0)
这不是问题所在:
在您的SQL中,您也可以为其他分发类型执行此操作:
JOIN
Mfgaccnt ON Mfgaccnt.Product_Code = Right(Pd1.Mfg_ID,3)
由于那不是左外连接,它将过滤掉那些没有得到匹配的行。