2017-07-17 1 views
0

Ich habe diese Abfrage, die mir die Zeit gibt, um herauszufinden, was das Problem, Ihren Rat zu schätzen ist.SQL JOIN ELTERN UND KIND und ERHALTEN Anzahl der Eltern und Kinder RECORDS

SELECT 
    cooperatives.island, cooperatives.id, 
    COUNT(
    CASE WHEN members.gender = 'Male' THEN 1 ELSE NULL END 
) AS males, 
    COUNT(
    CASE WHEN members.gender = 'Female' THEN 1 ELSE NULL END 
) AS females, 
    COUNT(members.gender) AS genderall 
FROM 
    cooperatives 
JOIN members ON cooperatives.id= members.c_id 
WHERE 
    1 = 1 
GROUP BY 
    cooperatives.island 

Was ich versuche zu tun, wie diese

Ergebnis erhalten

SQL result

Welche Arbeit ist, aber was muss ich hinzufügen, gibt es eine weitere Spalte, die eine Reihe von Genossenschaften von jeder Insel zeigen .

+0

, wenn Sie Fall verwenden, wenn in Zahl dann nicht anders Anweisung verwenden. –

Antwort

2

Ich vermute, Sie wollen:

SELECT c.island, COUNT(DISTINCT c.id) as num_cooperatives, 
     SUM(m.gender = 'Male') AS males, 
     SUM(m.gender = 'Female') AS females, 
     COUNT(m.gender) AS genderall 
FROM cooperatives c JOIN 
    members m 
    ON c.id = m.c_id 
GROUP BY c.island; 
+0

Danke Fellow, was ich vermisst habe –

Verwandte Themen