2017-11-15 7 views
-1

リンクされている2つのテーブルTable_CompanyTable_Houseがあります。彼らは、列(FALSE/TRUE)H_RenovatedH_Cost(NULL値が可)C_Index(ユニーク)C_Name及び(ユニーク)H_IndexC_Indexそれぞれ含みます。列C_Indexは、2つのテーブル間のリンクを作成します。リンクテーブルのビューを作成し、SQLでNULL値を避ける

は、どのように私は最低のコスト(NULLないH_Cost最安値)と(= TRUEH_Renovated)に改装され、各企業の家のために一緒にC_NameH_Costもたらしビューを作成するのですか?それは家を改装するための最低の費用であった各社のために示す必要があります。

答えて

0

select c.c_name, h.h_index, h.h_cost 
from @table_company c 
join @table_house h on c.c_index = h.c_index 
join (select h_index, MIN(h.h_cost) as h_cost 
from @table_house h 
where h.h_cost is not null 
and h_renovated = 1 
group by h_index) as x on x.h_index = h.h_index and x.h_cost = h.h_cost 
+0

アマガエルの答えは良いですが、これを試してみてください。しかし、データセットには欠点があります。 'table_house'に同じ組み合わせの5倍があれば' [c_index; h_renovated = 1で4回、 'h_renovated' = 1で1回、出力 '[c_index; h_cost] 'の代わりに使用します。 'h_renovated' = 1のエントリと同じ値の' h_cost'を持つ場合、 'h_renovated' = 0のエントリは出力として与えられないのですか? – stonebe

+0

これで、この[スレッド](https://stackoverflow.com/questions/47352218/unique-results-for-sql-command-with-group-min-and-null-values)で回答しました。 – stonebe

関連する問題