2013-08-29 3 views
-4

У меня есть 3 таблицы:создавать сложные SQL-запрос

ТВ1:

ID   Name  
1    R 
2    F 
3    B 

ТВ2:

ID1  
1 
2  
1  
2  
2  

ТВ3:

ID1   Stat 
1     20 
2     10 
3     20 

мне нужен запрос SQL для возвращения ниже спецификации:

  1. номер, имя от ТВ1 и графа строк из ТВ2
  2. строки, которые STAT = 20 в ТВ3
  3. Число строк повторяются в ТВ2

ВЫХОД:

ID    Name    Count 
1     R       2 
3     B       0 

спасибо

+0

Какая база данных? –

ответ

0
select a.id, a.name, count(b.id1) 
from table1 a join table3 c 
on a.id = c.id1 and c.stat = 20 
left join table2 b on a.id = b.id1 
group by a.id, a.name 
0
SELECT TB1.ID, 
     TB1.Name, 
     SUM(CASE WHEN TB2.ID1 IS NULL THEN 0 ELSE 1 END) AS Repeat 
FROM TB1 
     JOIN TB3 
      ON TB1.ID = TB3.ID1 
      AND TB3.STAT = 20 
     LEFT JOIN TB2 
      ON TB1.ID = TB2.ID1 
GROUP BY TB1.ID, 
     TB1.Name, 
Смежные вопросы