2016-11-26 97 views
1

我有2個表。訪問SQL - 左連接,分組依據,計數(選擇位置)

TBL1有colums:

id1, someothercolumns 

TBL2有colums:

id2, id1, bool 

我可以ID1加入他們沒有問題。我可以這樣做:

SELECT tbl1.id1, Count(tbl2.id2) AS CountOfid2 
FROM tbl1 LEFT JOIN tbl2 ON tbl1.id1= tbl2.id1 
GROUP BY tbl1.id1; 

但我不想指望從tbl2的所有項目,對那些

bool=false 

所以,我希望看到TBL1的所有記錄,而不是指望所有記錄從tbl2開始。我嘗試了子選擇,但Access不喜歡我的想法。 :( 你能幫我

+0

不@yosidahari,我不能再讀一遍 – junpet

回答

2

我想出瞭解決方案:

SELECT tbl1.id1, Count(tmptbl.id2) AS CountOfid2 
FROM tbl1 LEFT JOIN (SELECT tbl2.id1, tbl2.id2 FROM tbl2 WHERE bool=false) as tmptbl ON tbl1.id1= tmptbl.id1 
GROUP BY tbl1.id1; 

給我cookie!

0

請測試這個腳本:

select distinct t1.id1,t4.countofID2 from tbl1 t1 
    left outer join 
    (select t3.con as countofID2 ,* from tbl2 
    ,(SELECT COUNT(t2.id2)as con 

    FROM tbl2 t2) as t3)as t4 
    on(t1.id1=t4.id1)  

要快樂.....

+0

我會很高興,但喲你的腳本給出了錯誤的計數... – junpet

+0

好,我檢查了它。沒關係! – Atie