2013-06-19 37 views
0

SQL小白這裏查詢掙扎......返回另一個值,如果首選值爲null

我有兩個表,一個包含不同的價格表一個包含產品信息(ItemCode,ITEMNAME)和一個(最多10)爲每個產品。

用簡單的英語,這就是我想要達到的目標:

Select T0.ItemCode, T0.ItemName, T1.Price 

採取價格從價格表6:如果價格價格表6爲空,再從價格表1的價格和扣除5%

它似乎應該是相當直接的,但我不確定從哪裏開始誠實,我會感謝一些建議。

非常感謝, 邁克爾

+3

對於那些DBMS? – MicSim

+0

請儘可能地顯示一些表格數據。 –

回答

0

您需要​​3210功能看起來像:

SELECT COALESCE(T1.PRICE,"MISSING") FROM [TABLE] 

你可以找到關於它的更多信息您的RDBMS」文檔中,但是這將返回‘失蹤’,如果字段返回一個NULL。

1

這裏有兩個連接,每一個價格表這樣的方式:

select pi.ItemCode, pi.ItemName, 
     coalesce(pl6.price, pl1.price*0.95) as price 
from ProductInformation pi left outer join 
     PriceList pl6 
     on pi.ItemCode = pl6.ItemCode and pi6.List = 6 left outer join 
     PriceList pl1 
     on pi.ItemCode = pl1.ItemCode and pi1.list = 1; 

這假設價格表爲不同的行。如果他們是在同一行(price1price2。),那麼這將工作:

select pi.ItemCode, pi.ItemName, 
     coalesce(pl.price6, pl.price1*0.95) as price 
from ProductInformation pi left outer join 
     PriceList pl 
     on pi.ItemCode = pl.ItemCode; 
相關問題