0

価格を見つけるにはクエリを実行する必要があります。複数の価格表があり、それぞれが独自のテーブルにあります。customer_price、default_price、および minimum_price。

すべての価格表にすべての製品が含まれているわけではなく、製品がどの価格表にも表示されない場合があり、価格は価格に対して 0 を返す必要があります。

だから私はしたい:

select price from customer_price where customer='walmart' and product='whitebread'

これが結果を返す場合は、すべて問題ありません。結果が0、NULL、またはクエリが行を返さない場合、これを実行したい:

select price from default_price where customer='walmart' and product='whitebread'

これが結果を返す場合は、すべて問題ありません。結果が0、NULL、またはクエリが行を返さない場合は、単に0を返したい.

どうすればよいかわかりません。case ステートメントを試しましたが、結果に行が見つからない場合、case ステートメントは失敗します。どうすればこれを行うことができますか、または言うことができますかif 0 results then

いつもありがとうございます。

4

3 に答える 3

4
select top 1 price from (
    select 1 as qorder, price from customer_price where price > 0 and customer='walmart' and product='whitebread'
    union
    select 2 as qorder, price from default_price where price > 0 and customer='walmart' and product='whitebread'
    union 
    select 3 as qorder, 0 
    ) as sq
order by qOrder
于 2013-09-19T09:53:42.970 に答える
2
case when
(select count(price) from customer_price where customer='walmart' and product='whitebread' and price is not null and price > 0) > 0 
then 
    select price from customer_price where customer='walmart' and product='whitebread'
else 
    select price from default_price where customer='walmart' and product='whitebread'   
end 
于 2013-09-19T09:54:17.670 に答える