我有这个查询:
select ItemName,FrgnName,OnHand,Price as Regular_Price from ITM1, OITM
where exists
(select null from OSCN
where oitm.ItemCode=oscn.ItemCode
and itm1.ItemCode=oscn.ItemCode
and oscn.CardCode='test'
and itm1.PriceList=2)
此查询是以正常价格(7种产品)获取与特定客户相关联的所有产品
现在我想添加第四个表(sprecial_prices表),其中只有6个产品具有该客户的特殊价格。
问题是,如果我将special_price表添加到查询中,我的结果将是 6个产品,并且我想显示所有客户的项目,即使其中一个是0。
谢谢
答案 0 :(得分:1)
我认为你的查询可以用这种方式用SQL92语法重写:
select
i.ItemName,FrgnName,o.OnHand,i.Price
from
ITM1 i
inner join OITM o on i.ItemCode = o.ItemCode
inner join OSCN os on o.ItemCode = os.ItemCode
where
o.CardCode = 'test'
and i.PriceList = 2
要添加第4个表,要使用左连接,以便即使第4个表中没有结果,也会显示所有记录:
select
i.ItemName,FrgnName,o.OnHand,i.Price
from
ITM1 i
inner join OITM o on i.ItemCode = o.ItemCode
inner join OSCN os on o.ItemCode = os.ItemCode
left join special_price sp on o.ItemCode = sp.ItemCode --or whatever column joins to special_price
where
o.CardCode = 'test'
and i.PriceList = 2