Mam kwerendę związkową w procedurze przechowywanej.TSQL - Suma kwerendy związkowej
co chciałbym zrobić, to suma kolumny i powrót tego zapytania do klienta
Jak to zrobić?
Malcolm
Mam kwerendę związkową w procedurze przechowywanej.TSQL - Suma kwerendy związkowej
co chciałbym zrobić, to suma kolumny i powrót tego zapytania do klienta
Jak to zrobić?
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
Czy lepiej w ** jakikolwiek przypadek WYBRAĆ 'othercol1, othercol2, SUMA (bar)' zamiast 'othercol1, othercol2, bar' z wewnętrznego pod-zapytania & SUM ponownie w zapytaniu zewnętrznym np. jeśli zwrócone wiersze są zbyt liczne, tj. tysiące lub miliony? Lub SUMA() w wewnętrznej kwerendzie NIGDY nie będzie lepiej w każdym przypadku? – Medorator
@buffer: miałby dwie operacje agregacji w wewnętrznej tabeli, zamiast jednego zewnętrznego agregatu. Mogłoby być lepiej. – gbn
SELECT SUM(MyCol) FROM
(
SELECT ... MyCol FROM Table1
UNION ALL
SELECT ... MyCol FROM Table2
)as tbl
Przy użyciu UNION uruchomieniu ryzyko nieprawidłowego wyniku („Unia”, gdy stosowane przez siebie = „unii odrębną”, który odfiltrowuje powielony wiersze), jeśli sumowanie jest znacznie bardziej prawdopodobne, że potrzebujesz wszystkich wierszy, tj. UNION ALL –
@Used_By_Already - masz rację, to powinno być oczywiście UNION ALL. Poprawione. – Joe
Proponuję pisać kod TSQL –