2011-03-02 36 views
0

我有一個表格,具有以下列。SQL組通過問題

我需要找出那些具有相同jobcategoryrowid的2個ApplicantRowid的人,並且AssessmentTest應該至少有一行NULL與不同的Appstatusrowid。

結果應該看起來像下表所示。

Rowid ApplicantRowid JobCategoryRowid AssessmentTestRowid AppstatusRowid 
10770598 6952346  157    3      5 
11619676 6952346  157    NULL    6 
+2

我建議重新書寫方式,也將這個問題幫助我們回答它。源表是什麼樣的?數據是什麼樣的?什麼是列類型? – jonnii 2011-03-02 21:13:20

+1

..你已經嘗試了什麼? – GolezTrol 2011-03-02 21:14:21

+0

請求輸出的樣本輸入數據是什麼 – 2011-03-02 21:20:20

回答

0
select t.* 
from 
(
    select ApplicantRowid, JobCategoryRowid 
    from tbl 
    group by ApplicantRowid, JobCategoryRowid 
    having count(AssessmentTestRowid) < count(*) 
     and count(distinct AppstatusRowid) > 1 
) x 
inner join t on t.ApplicantRowid = x.ApplicantRowid 
      and t.JobCategoryRowid = x.JobCategoryRowid 

計數不包括NULL,所以count(AssessmentTestRowid) < count(*)確保至少有一個NULL

count(distinct AppstatusRowid) > 1確保有不同AppstatusRowids