2017-11-27 9 views
0

特定の順序リストでreferenceまたはbar codeまたはalternative bar codesで商品を検索できるページを開発しています。Sql - 3つのテーブルでクエリを作成する方法

selectから参照とqttの列を取得する必要があります。

は、我々は3つのテーブルがあることを行うには:

  • ビ(リスト特定の順序内のすべての製品)
  • SC(私たちの商品番号で標準QTTを与える)
  • BCを(私たちに代替バーを提供しますコード、this table has also qtt column

問題は、それは製品が代替バーコードを持っていない可能性があります。この場合、bc table returns nullということであり、この場合、Iヘクタールでテーブルscqttを取得することができますが、同じクエリでそれを行う方法はわかりません。

select top 1 bi.ref, bc.qtt 
from bi left join 
    bc 
    on bc.ref = bi.ref 
where (bi.ref='00012' or bi.code='00012' or bc.code='00012') and 
     bi.bostamp = ('orderID-0001') 

bi.bostampは、注文IDを持つ参照です:

私のクエリは、ということです。

scテーブルをクエリに統合して、bcがヌルの場合のqttを取得する必要があります。

ありがとうございました

+2

サンプルデータと望ましい結果は、あなたがしたいことを説明するのに役立ちます。 –

答えて

0

私はあなたが望む結果を得ることができると思います。

Select Top 1 bi.ref, case when isnull(bc.qtt) then sc.qtt else bc.qtt end as qtt 
FROM bi left join bc on bc.ref = bi.ref 
left join sc on sc.ref = bi.ref 

これは機能しますか?これはまた、scがbcとbiのような参照列を持っていることを前提としています。

関連する問題