O SQL Server “não pode executar uma função agregada em uma expressão contendo um agregado ou uma subconsulta”, mas a Sybase pode
Esse problema já foi discutido anteriormente, mas nenhuma das respostas aborda meu problema específico porque estou lidando com diferentes cláusulas where nas seleções interna e externa. Essa consulta foi executada muito bem no Sybase, mas fornece o erro no título desta postagem quando executada no SQL Server. A consulta é complicada, mas o esboço geral da consulta é:
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'
A seguir descreve a situação que estou tentando resolver:
Todos os códigos de grupo representam as raças, exceto "total" e "outros"código de grupo 'total' representa o total de graduados de todas as raçasno entanto, multi-raça está faltando, então as contagens de pós-graduação de raça não podem somar ao total de contagens de pós-graduaçãoeste dado faltante é o que precisa ser calculadoExiste alguma maneira de reescrever isso usando tabelas derivadas ou junções para obter os mesmos resultados?
Atualizar: eu crieidados de amostra e 3 soluções para o meu problema específico (2 influenciados por sgeddes). O que eu adicionei envolve mover a subconsulta correlacionada para uma tabela derivada na cláusula FROM. Obrigado pela ajuda pessoal!