2016-07-30 6 views
1

私のテーブルは異なる条件で別のテーブルに参加

Renovationinfo

BlockCode|arsehRow|SakhtemanRow 
------------------------------- 
1  |1  |00   
2  |2  |00   
3  |3  |01   

ArsehMalk

BlockCode|arsehRow|name 
------------------------ 
1  |1  |a   
2  |2  |b  

ApartmanMalk

BlockCode|arsehRow|SakhtemanRow|name 
------------------------------------------------- 
3  |3  |01   |d  

私はでRenovationinfoに参加したいですSakhtemanRow=='00'

SakhtemanRow<>'00'

場合ApartmanMalkRenovationinfoに参加する場合、私は、このクエリを記述しかし、これは任意のものを返しません。

Select name 
From 
    Renovationinfo r 
Left Join 
    ArsehMalk m1 On m1.BlockCode = r.BlockCode And 
    m1.arsehRow = r.arsehRow And r.SakhtemanRow = '00' 
Left Join 
    ApartmanMalk m2 On m2.BlockCode = r.BlockCode And 
    m2.arsehRow = r.arsehRow And 
    m2.SakhtemanRow=r.SakhtemanRow And 
    r.SakhtemanRow<>'00' 

私は、この出力

BlockCode|arsehRow|name 
------------------------------- 
1  |1  |a   
2  |2  |b   
3  |3  |d 
+1

を、あなたは、このサンプルのために取得したいのですが、出力を共有していただけますか?それは、質問をはるかに分かりやすくするでしょう。 – Mureinik

+1

私はその質問に間違いはありません。あなたはそれが悪いデータではないと確信していますか? – FrankerZ

答えて

3

はあなたのクエリが1つの根本的な問題がありますしたい:nameはあいまいです。あなたは追加の列をしたいので

select coalesce(m1.name, m2.name) as name 

:あなたは、この問題を解決することができ

select r.BlockCode, r.arehRow, coalesce(m1.name, m2.name) as name 
関連する問題