2016-11-26 44 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