2016-11-26 6 views
1

У меня есть 2 таблицы.Access SQL - Left join, Group by, Count (выберите где)

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