2016-04-17 14 views
0

Ich habe eine Abfrage, die Anzahl und einige Spalten aus zwei Tabellen zurückgibt und eine andere Abfrage, die Anzahl und eine Spalte aus zwei Tabellen zurückgibt. Ich möchte diese beiden Abfragen kombinieren, die in einer Zeile pro ID ergibt. Ich habe dies versucht:wie zwei Abfragen kombiniert werden, die aus verschiedenen Tabellen und mehr als einer Spalte zählen

select 
(select a.column_1 as ID,a.column_2,COUNT(b.column_2) as Cnt1 
from 
    table_1 a left outer join table_2 b on a.ID=b.ID 
group by 
    a.column_1 as ID,a.column_2 
) 
where EXISTS 
(select a.column_1 as ID,COUNT(c.column_2) as Cnt2 
from 
    table_1 a left outer join table_3 c on a.ID=c.ID 
group by 
    a.column_1 
) 
+2

Geben Sie Beispieldaten und gewünschte Ergebnisse an und versehen Sie die Frage mit der Datenbank, die Sie tatsächlich verwenden. –

+0

Ich möchte Ergebnis als ID column_2 Cnt1 Cnt2 – Juliee

Antwort

0

ohne Ihr echtes Schema zu wissen ... auf der Grundlage Ihrer Beispielabfrage, vorausgesetzt, Ihre inneren Anfragen korrekt sind (einige kleinere Syntaxfehler). Vielleicht möchtest du so etwas machen.

select * 
FROM 
    (select a.column_1 as ID,a.column_2,COUNT(b.column_2) as Cnt1 
    from table_1 a left outer join table_2 b on a.ID=b.ID 
    group by a.column_1,a.column_2 
) T1 
INNER JOIN 
    (select a.column_1 as ID,COUNT(c.column_2) as Cnt2 
    from table_1 a left outer join table_3 c on a.ID=c.ID 
    group by a.column_1 
) T2 ON T1.ID = T2.ID 

sqlfiddle

Sie könnten select * mit select T1.ID,T1.column_2,Cnt1,Cnt2 basierend auf Ihren Kommentar ersetzen möchten.

+0

Es funktioniert .... Vielen Dank ...:) Vielen Dank – Juliee

Verwandte Themen