Logo UGIdotNET

Discussione 'ordinare query sql su campi scelti'

# Pubblicato il 30 ago 2004 9.40 - Rispondi
gianni mancini
ordinare query sql su campi scelti
devo ordinare i risultati di una ricerca
a seconda dei campi scelti dall'utente in maniera crescente o decrescente,
ho utilizzato la seguente query:(che ordina bene nel caso si trattino di date mentre da errore per campi di tipo nVarChar.)
INSERT INTO #TempJt
(
CG_Id_CodUnicoJT, S.NomeStato, CG_DataEmiss, CG_CodFiliale,
CM_Nominativo, CM_Indirizzo, CM_Localita, CM_Prov, CG_CatCliente,
CM_TargaVettura,U.Id_TipoUtente, CG_LastIdUtente,sort_1,sort_2
)

SELECT
CG_Id_CodUnicoJT,S.NomeStato, CG_DataEmiss,
CG_CodFiliale,
CM_Nominativo, CM_Indirizzo, CM_Localita, CM_Prov, CG_CatCliente,
CM_TargaVettura,U.Id_TipoUtente, CG_LastIdUtente,
CASE
WHEN @SortOrder = 2 THEN CG_DataEmiss
WHEN @SortOrder =3 THEN CG_LastIdUtente
WHEN @SortOrder = 4 THEN CM_TargaVettura
WHEN @SortOrder = 5 THEN CG_Id_CodUnicoJT
ELSE NULL END AS sort_1,
CASE WHEN @SortOrder = 1 THEN CG_DataEmiss
ELSE NULL END AS sort_2


FROM
TBLU_jt
INNER JOIN TBLU_Stati as S ON CG_Id_StatoJT=S.Id_Stato
LEFT JOIN TBLU_Utenti as U ON U.Id_Utente=CG_LastIdUtente
left JOIN TBLU_Utenti as TipoU ON TipoU.Id_Utente = CG_CodFiliale

WHERE
CG_CodFiliale LIKE '%' + @Assegmamento + '%'
AND
CG_CatCliente LIKE '%' +@CatCliente+ '%'
and
CG_Id_CodUnicoJT LIKE '%' +@NJt+ '%'
AND
CM_Nominativo LIKE '%' + @Nominativo + '%'
AND
CM_TargaVettura LIKE '%' + @Targa + '%'
AND
CG_DataEmiss LIKE '%' + @Data +'%'
AND
F_NAC LIKE '%' +@NAC+ '%'
AND
TipoU.Id_TipoUtente =2
ORDER BY sort_1 desc, sort_2 asc

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185