Tengo una consulta de unión en un procedimiento almacenado.TSQL - Suma una consulta de unión
lo que me gustaría hacer es sumar una columna y regresar esa consulta al cliente
¿Cómo voy a hacer esto?
Malcolm
Tengo una consulta de unión en un procedimiento almacenado.TSQL - Suma una consulta de unión
lo que me gustaría hacer es sumar una columna y regresar esa consulta al cliente
¿Cómo voy a hacer esto?
Malcolm
SELECT
othercol1, othercol2,
SUM(bar)
FROM
(
SELECT
othercol1, othercol2, bar
FROM
RT
UNION ALL
SELECT
othercol1, othercol2, bar
FROM
FM
) foo
GROUP BY
othercol1, othercol2
¿Es mejor en ** cualquier caso ** SELECCIONAR 'othercol1, othercol2, SUM (bar)' en lugar de 'othercol1, othercol2, bar' de la subconsulta interna y SUM nuevamente en la consulta externa, p. si las filas devueltas son demasiadas, es decir, miles o millones? ¿O SUMA() en la consulta interna NUNCA será mejor en cualquier caso? – Medorator
@buffer: tendría 2 operaciones agregadas en la tabla interna, en lugar de un agregado externo. Podría ser mejor. – gbn
SELECT SUM(MyCol) FROM
(
SELECT ... MyCol FROM Table1
UNION ALL
SELECT ... MyCol FROM Table2
)as tbl
Cuando se utiliza UNION se corre el riesgo de un resultado incorrecto ("unión" cuando se usa solo = "unión distinta", que filtra los duplicados filas), si se suma es mucho más probable que necesite todas las filas, es decir UNION TODO –
@Used_By_Already - tiene razón, debería ser UNION TODO, por supuesto. Corregido – Joe
Sugiero que publica su código TSQL –