2015-08-20 21 views
0

我有兩個表,分別叫做contract和contractrecords。對於每份合同都會有多個合同記錄,這意味着contractid將成爲合同記錄中的參考資料。合同記錄中有一個狀態欄,它的值可能是1,2,3,4。 現在我的問題是,如果合同有多個合同記錄,並且他們全都具有狀態1,則合同處於活動狀態。如果所有合同記錄的狀態都不是1,則合同不活動。如果至少一個合同記錄具有狀態1,則該合同是分散的。SQL Query根據參考列檢查表列中發生的次數

如何實現這個?

+0

谷歌,瞭解SQL Server中的exists()函數。 –

回答

0

這應該做的工作:

Select contractId, 
    status = case when total = status then 'active' 
     when status = 0 then 'inactive' 
     else 'partial' 
    end 
From (
    Select contractId, total = count(recordId), status = Sum(case when status = 1 then 1 else 0) 
    From contractrecords 
    Group By contractId 
) 

更新你的表和列(和修復可能錯字)

+0

非常感謝julien。有效.... – ramakrishna