ho questa domanda:
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By 1
dove Table_View è ovviamente una vista. Sto gettando questo messaggio di errore:
Ogni espressione GROUP BY deve contenere almeno una colonna che non sia un riferimento esterno.
Puoi aiutarmi a risolvere questo? È dentro Ms SQL Server 2008
risposte:
4 per risposta № 1non puoi dare il gruppo per 1
provare
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By SolutionName
0 per risposta № 2
La dichiarazione di Martin su GROUP BY è corretta,sebbene tu> puoi <utilizzare un ordinale di colonna invece del nome di una colonna in un ORDER BY, in varie versioni di SQL (sto pensando a TSQL, che è lo standard ISO nella maggior parte della sintassi SQL principale).
Ma è una pratica saggia non usare i numeri di colonnanelle dichiarazioni ORDER BY, anche se funzionano. Perché? Se la query è una parte di un proc memorizzato e lo schema della tabella viene modificato aggiungendo una colonna alla tabella originale (o alla vista), non vi è alcuna garanzia che l'ordine originale delle colonne venga mantenuto dalla modifica. Il che significherebbe che potresti ordinare da una colonna non voluta e priva di significato, che quindi interrompe la tua richiesta.
È molto meglio usare i nomi delle colonnepiuttosto che ordinali ogni volta (anche se come il conteggio (*), non ci si blocca se si tratta di query ad-hoc per uso personale che non vedranno mai la luce del giorno in produzione).