SUM-bedingte Logik

Ich habe die folgenden 2 Tabellen in SQL server 2012:

|=================| |ID|SALARY|EXCLUDE| | 1| 90000| NULL| | 1| 65000| NULL| | 1| 10000| Y| | 2| 85000| NULL| | 2| 4500| Y| | 2| 1000| Y| | 3| 75000| NULL| |=================| |===========| |ID|CONTRACT| | 1| 155000| | 2| 85000| | 3| 75000| |===========| 

Ich muss eine Abfrage schreiben, die die folgenden Ergebnisse zurückgibt:

 |===========================| |ID|CONTRACT|EXCLUDED SALARY| | 1| 155000| 10000| | 2| 85000| 5500| | 3| 75000| NULL| |===========================| 

Mit anderen Worten, ich muss das SALARY-Feld in der ersten Tabelle für jede ID summieren, wenn EXCLUDE Y ist. Ich weiß, wie man die Gehaltsspalte summiert, aber ich verstehe nicht, wie man die EXCLUDE-Logik einbezieht. Jede mögliche Hilfe, die Sie mir geben können, ist sehr geschätzt! Vielen Dank!

Versuche dies:

 SELECT A.ID, B.CONTRACT, SUM(CASE WHEN EXCLUDE = 'Y' then SALARY END) EXCLUDED_SALARY FROM TABLE_SALARY A INNER JOIN TABLE_CONTRACT B ON A.ID = B.ID GROUP BY A.ID, B.CONTRACT 

Sie können bedingte Aggregation verwenden, um nur Gehälter zu zählen, wo das Ausschlussflag Y in der Summe ist:

 sum(case when exclude = 'Y' then salary end)