Könnte jemand überprüfen meine SQL-Anweisung für die ordnungsgemäße Funktionsweise und allgemeinen gesunden Menschenverstand Ansatz?SQL Server-- Join Tabellen und SUM-Spalten für jede einzelne Zeile
Hier ist, was passiert: Ich habe eine Eltern-Kind-Tabelle mit einer Eins-zu-viele-Beziehung, verbunden mit einer Spalte namens AccountNumberKey. Die untergeordnete Tabelle enthält numerische Spalten, die ich zusammenfassen muss.
Die Daten sind so, dass alle untergeordneten Datensätze mit einem angegebenen AccountNumberKey-Wert immer die gleichen Werte in ihren zwei numerischen Spalten haben. Ich möchte diese Tabellen verbinden und für jeder AccountNumberKey die Summe dieser beiden Spalten in eine temporäre Tabelle setzen. Ich muss nur die Spalten aus einem einzelnen Kind Datensatz für jeden AccountNumberKey summieren.
Einige Beispieldaten unter Willen (hoffe ich) machen dies deutlicher:
Parent Table Columns
ParentID InstitutionID AccountNumberKey
1 LocalHost 1873283
2 Acme Brokers 3627389
3 Dewey, Cheatem 1392876
4 NCC1701 8837273
5 Peyton Place 9981273
Child Table Columns
ChildID AccountNumberKey Value1 Value2 ProposalNumber
1 1873283 1000 100 58
2 1873283 1000 100 59
3 1873283 1000 100 60
4 1873283 1000 100 61
Hier ist meine SQL-Anweisung:
SELECT DISTINCT Parent.InstitutionID, AccountNumberKey, SUM(Child.Value1 + Child.Value2) as total
INTO #TempTable
FROM Parent
INNER JOIN
Child ON Parent.AccountNumberKey = Child.AccountNumberKey
GROUP BY Parent.InstitutionID, Parent.AccountNumberKey, Child.ProposalNumber
Das Ziel ist es, die Tabellen zu verknüpfen und die Daten in eine temporäre Tabelle setzen so sieht es so aus:
TempTable columns
InstitutionID AccountNumberKey Total
LocalHost 1873283 1100
Erfüllt meine SQL-Abfrage muster? Ich bin kein Genie, wenn es um Gruppierungen geht und fragte mich, ob dies A) korrekt und B) ein guter Weg ist oder ob es bessere Verbindungen gibt, um es zu versuchen.
Danke!
Charles, Sie können an jeder beliebigen Spalte teilnehmen, unabhängig vom Schlüsselstatus. Obwohl du vielleicht gesagt hast, dass es nicht ratsam ist? Der Server ermöglicht es Ihnen, sich an allem, was Ihnen gefällt, anzuschließen. – ErikE
@Emtucifor, Ja, du hast Recht Ich werde bearbeiten, um diesen Punkt klar zu machen .. Beitritt zu anderen als PKs ergibt kartesische Produkte ... aber manchmal (nicht hier) das ist, was Sie wollen ... –
@Charles, können Sie verbinden Sie einen beliebigen Tisch mit einem beliebigen Tisch, ganz wie Sie möchten und in der Regel gehe ich nicht ohne Grund an 2NF vorbei, es lohnt sich selten. –