Ho una query di unione in una stored procedure.TSQL: somma una query di unione
Quello che vorrei fare è sommare una colonna e tornare quella query al cliente
Come faccio a fare questo?
Malcolm
Ho una query di unione in una stored procedure.TSQL: somma una query di unione
Quello che vorrei fare è sommare una colonna e tornare quella query al cliente
Come faccio a fare questo?
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
È meglio in ** qualsiasi ** caso selezionare 'othercol1, othercol2, SUM (bar) 'piuttosto che' othercol1, othercol2, bar' dalla sub-query interna e SUM di nuovo nella query esterna, ad es. se le righe restituite sono troppe, cioè migliaia o milioni? O SUM() nella query interna non sarà MAI meglio in ogni caso? – Medorator
@buffer: avrebbe 2 operazioni di aggregazione nella tabella interna, invece di un aggregato esterno. Potrebbe essere meglio. – gbn
SELECT SUM(MyCol) FROM
(
SELECT ... MyCol FROM Table1
UNION ALL
SELECT ... MyCol FROM Table2
)as tbl
Quando si utilizza UNION si corre il rischio di un risultato errato ("unione", quando usato da solo = "unione distinta", che filtra il duplicato righe), se sommando è molto più probabile che siano necessarie tutte le righe, ovvero UNION ALL –
@Used_By_Already - hai ragione, dovrebbe essere UNION ALL ovviamente. Corretto. – Joe
ti suggerisco di postare il tuo codice TSQL –