Questo problema è stato discusso in precedenza, ma nessuna delle risposte risolve il problema specifico perché ho a che fare con clausole diverse in cui l'interno e l'esterno seleziona. Questa query viene eseguita correttamente in Sybase, ma fornisce l'errore nel titolo di questo post quando eseguito in SQL Server. La query è complicato, ma il quadro generale della query è:SQL Server "non può eseguire una funzione di aggregazione su un'espressione che contiene un'aggregazione o una sottoquery", ma Sybase può
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'
Il seguente descrive la situazione che sto cercando di risolvere:
- tutti i codici di gruppo rappresentano le gare ad eccezione di 'totale' e ' altri
- gruppo di codice 'totale' rappresenta i laureati totali di tutte le razze
- tuttavia, multi-gara non è presente, in modo che i conteggi di laurea gara non può aggiungere fino al laureato totale conta
- questo dato mancante è quello che deve essere calcolato
C'è comunque la possibilità di riscriverlo utilizzando tabelle o join derivati per ottenere gli stessi risultati?
Aggiornamento: Ho creato sample data and 3 solutions to my specific problem (2 influenzato da sgeddes). Quello che ho aggiunto comporta lo spostamento della sottoquery correlata in una tabella derivata nella clausola FROM. Grazie per l'aiuto ragazzi!
Quali sono la semantica suppone essere? Hai quattro '(' ma solo due ')'. –
Puoi compitare il tuo compito, fornire dati di esempio e il risultato previsto. Inoltre, per favore aggiungi il tag 'sql-server' al tuo post. –
Semantica aggiunta, descrizione del problema, nonché dati e soluzioni come richiesto. – PillowMetal