2014-04-28 39 views
0

我有这个疑问:显示价格没有消除产品

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
谢谢

回答

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 
+0

谢谢你的回答,但你选择i.ItemName,FrgnName,OnHand,价格从ITM1,只有价格存在于此表中 名称,一手在OITM表中存在不是ITM1 我试过但不工作! – Sam

+1

@Samira你会得到什么错误/输出? –

+0

您没有指定哪个列与哪个表一起使用,所以我放弃了这些别名。请指定你的错误。 – paqogomez