SQL Server „nie może wykonać funkcji agregującej na wyrażeniu zawierającym agregat lub podzapytanie”, ale Sybase może

Ten problem został omówiony wcześniej, ale żadna z odpowiedzi nie dotyczy mojego konkretnego problemu, ponieważ mam do czynienia z różnymi klauzulami gdzie w wewnętrznym i zewnętrznym wyborze. Ta kwerenda została wykonana w porządku w Sybase, ale podaje błąd w tytule tego posta podczas wykonywania w SQL Server. Zapytanie jest skomplikowane, ale ogólny zarys zapytania to:

select sum ( t.graduates -
    ( select sum ( t1.graduates )
      from table as t1
      where t1.id = t.id and t1.group_code not in ('total', 'others' ) ) )
from table as t
where t.group_code = 'total'

Poniżej opisano sytuację, którą próbuję rozwiązać:

wszystkie kody grupowe reprezentują wyścigi z wyjątkiem „ogółem” i „innych”kod grupy „total” oznacza całkowitą liczbę absolwentów wszystkich wyścigówjednak brakuje wielu wyścigów, więc liczba absolwentów wyścigu może nie sumować się do łącznej liczby absolwentówto brakujące dane należy obliczyć

Czy mimo to należy przepisać to przy użyciu tabel pochodnych lub złączeń, aby uzyskać takie same wyniki?

Aktualizacja: ja stworzyłemprzykładowe dane i 3 rozwiązania mojego konkretnego problemu (2 pod wpływem sgeddes). Dodany przeze mnie polega na przeniesieniu skorelowanego podzapytania do tabeli pochodnej w klauzuli FROM. Dziękuję za pomoc!

questionAnswers(1)

yourAnswerToTheQuestion