Ich habe mit Datenbanken auf Zugriff gearbeitet, aber zum ersten Mal muss ich MS SQL Server 2012 verwenden, daher muss ich meine Abfragen schreiben, da ich den Abfrage-Generator nicht so benutzerfreundlich finden Zugriff.Sql linken Join plus CASE Abfrage
Das Problem, auf dem ich feststecke, ist keine sehr anspruchsvolle. Ich habe 2 Tabellen wie folgt:
dbo.WF_PM_ACCT_DET_DB with columns to use Account, Postal_Code, Client_Birth_Date
dbo.WF_PM_SUM_DB with columns to use Account, Total_Avg_AuA
Was ich will ist eine Abfrage mit Ergebnissen zu tun haben, die nach Postleitzahlen Gruppen, zählt die Anzahl der Client in den jeweiligen Post Code, auch Gruppen nach Alter, wo AuA ist> 0
Also zuerst muss ich Client in 3 Gruppen nach Alter gruppieren (< 35,35-55 und> 55). Zählen Sie dann, wie viele Clients sich in einer bestimmten Altersgruppe in einer bestimmten Postleitzahl befinden. Wählen Sie außerdem nur Clients mit einer Summe (AuA)> 0 aus der zweiten Tabelle aus. der Ausgang wäre so etwas wie dies
Postal code CountofClient Age_group
1m1 2m2 50 <35
1m1 2m2 20 35-50
and so on...
sieht so weit das ist, was ich habe:
SELECT Postal_Code, COUNT(Account) AS Count_Account, Age,
AVG(YEAR(GETDATE()) - YEAR(client_birth_date)) AS 'Age'
CASE WHEN AGE <=35 THEN 'AGEGROUPA'
WHEN AGE >35 AND AGE <55 THEN 'AGEGROUPB'
WHEN AGE >=55 THEN 'AGEGROUPC'
end as 'clientageseg'
FROM dbo.WF_PM_ACCT_DET_DB
GROUP BY Postal_Code, Client_Birth_Date, Age
jede mögliche Hilfe geschätzt wird. Vielen Dank.
Das ist großartig, aber ich muss nur Konten zählen ist Summe (AuA) von der anderen Tabelle (dbo.WF_PM_SUM_DB) ist> 0. Also meine Frage ist wirklich: wo gebe ich die linke Join ?? –
@DataGuy Sie würden es in der CTE eingeben. Ich war nicht sicher, Ihren Beitrag zu lesen, wie das ins Spiel kommen würde. Ich aktualisiert mit 1 Lösung durch Hinzufügen der JOIN und verwenden Sie eine Fensterfunktion.Sie könnten auch eine korrelierte Unterabfrage in der where-Klausel verwenden .. – Matt
Danke.Ich schaue Youtube-Videos auf Fensterfunktionen und CTE.Weitere andere Vorschläge? –