sql-server - consultas - unir varias tablas de access en una sola
uniĆ³n interna y grupo por (2)
Puede usar UNION ALL
para seleccionar ambas tablas como una, ya que tienen la misma definición. Desde allí, puede anidarlos como una tabla derivada, y luego SUM
en eso:
SELECT [Name], SUM(Qty) AS TotalQty
FROM (
SELECT [Name], Qty
FROM t1
UNION ALL
SELECT [Name], Qty
FROM t2
) YourDerivedTable
GROUP BY [Name]
Tengo dos tablas con definición idéntica.
T1:
Name VARCHAR(50)
Qty INT
T2:
Name VARCHAR(50)
Qty INT
Esta es la información que tiene cada tabla:
T1:
Name Qty
a 1
b 2
c 3
d 4
T2:
Name Qty
a 1
b 3
e 5
f 10
Quiero tener un resultado que puede sumar la cantidad de ambas tablas basadas en Nombre.
Resultados esperados:
Name TotalQty
a 2
b 5
c 3
d 4
e 5
f 10
Si hago unirme a la izquierda o unirme a la derecha, no me devolverá el nombre de ninguna de las tablas.
Lo que estoy pensando es crear una tabla temporal y agregar estos registros y solo hacer un agregado de SUMA en la columna Cantidad, pero creo que debería haber una mejor manera de hacerlo.
Así es como se ve mi consulta que no devuelve el resultado esperado:
SELECT t1.Name, ISNULL(SUM(t1.Qty + t2.Qty),0) TotalQty
FROM t1
LEFT JOIN t2
ON t1.Name = T2.Name
GROUP BY t1.Name
¿Puede alguien decirme por favor si la creación de una tabla temporal está bien aquí o hay una mejor manera de hacerlo?