¿Alguien podría verificar mi declaración de SQL para un funcionamiento correcto y un enfoque general de sentido común?SQL Server-- tablas de unión y columnas SUM para cada fila distinta
Esto es lo que sucede: Tengo una tabla principal y secundaria con una relación de uno a varios, unida en una columna llamada AccountNumberKey. La tabla secundaria tiene columnas numéricas que necesito resumir.
La información es tal que todos los registros secundarios con un valor de AccountNumberKey dado siempre tendrán los mismos valores en sus dos columnas numéricas. Quiero unirme a estas tablas y para cada AccountNumberKey pone la suma de esas dos columnas en una tabla temporal. Solo necesito sumar las columnas de un solo registro secundario dado cada AccountNumberKey.
Algunos datos de la muestra por debajo de voluntad (espero) hacer esto más claro:
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
Aquí es mi SQL Declaración:
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
El objetivo es vincular las tablas y poner los datos en una tabla temporal por lo que se ve así:
TempTable columns
InstitutionID AccountNumberKey Total
LocalHost 1873283 1100
¿Mi consulta SQL pasa a reunir? No soy un genio cuando se trata de agrupaciones y me pregunto si esto es A) correcto y B) un buen camino a seguir o si hay mejores combinaciones para intentar.
Gracias!
Charles, puede unirse en cualquier columna que desee, independientemente del estado de la tecla. Aunque tal vez estabas diciendo que no es aconsejable? El servidor te permite unirte a todo lo que quieras. – ErikE
@Emtucifor, Sí, tienes razón. Voy a editar para aclarar este punto ... unir resultados que no sean PK en productos cartesianos ... pero a veces (no aquí) eso es lo que quieres ... –
@Charles, puedes une cualquier tabla a cualquier mesa de la manera que quieras y, en general, no voy más allá de 2NF sin una buena razón, rara vez vale la pena. –