我需要在游标中转换我的SQL Server查询。
我尝试了问题Select statement in cursor的示例,但有错误。
这是我的查询:
SELECT DISTINCT
U.IDSocio, U.IDUtente,
U.Cognome, U.Nome, U.Sesso,
U.Luogo_Nascita,
U.Provincia_Nascita,
U.Stato_Nascita,
COALESCE(C.codice, SS.codice) as Nascita_CodCatastale,
CONVERT(DATE, U.Data_Nascita) AS Data_Nascita_Orig,
REPLACE(CONVERT(VARCHAR, U.Data_Nascita, 111), '/', '-') as Data_Nascita,
U.Indirizzo_Via as Residenza_Indirizzo,
U.Indirizzo_NumeroCivico as Residenza_NumeroCivico,
U.Indirizzo_Cap as Residenza_Cap,
U.Indirizzo_Citta as Residenza_Citta,
U.Indirizzo_Pv as Residenza_Provincia,
U.CodCatastaleResidenza as Residenza_CodCatastale,
U.Indirizzo_Stato as Residenza_Stato,
U.PIVA,
U.CodiceFiscale,
U.Documento,
U.Telefono_1,
U.Telefono_2,
U.SMS,
U.Email,
U.Note,
UG.Descrizione as Categoria,
U.AutorizzaSMS,
U.AutorizzaEmail,
U.AutorizzaCartaceo,
U.CFRicevuta,
U.CFRicevutaUtente
FROM [dbo].[Utenti] U
LEFT JOIN dbo.UtenteCustom UC on UC.IDUtente = U.IDUtente
LEFT JOIN dbo.UtentiCategorie UG on UG.IDCategoria = UC.IDCategoriaUtente
LEFT JOIN dbo.Comuni C on C.Comune = U.Luogo_Nascita and C.PV = U.Provincia_Nascita
LEFT JOIN dbo.Comuni SS on SS.Comune = U.Stato_Nascita
INNER JOIN dbo.AbbonamentiIscrizione AI ON U.IDUtente = AI.IDUtente
INNER JOIN dbo.AbbonamentiDurata AD ON AI.IDDurata = AD.IDDurata
INNER JOIN dbo.Abbonamenti A ON A.IDAbbonamento = AD.IDAbbonamento
INNER JOIN dbo.AziendeAbbonamenti AA On AA.IDAbbonamentoCategoria = A.IDCategoria
INNER JOIN dbo.TesseramentiAbbonamentiDurata TAD On TAD.IDDurata = AD.IDDurata
WHERE
COALESCE(AA.IDRicevutaAzienda, 2) = 2
AND (U.Cognome <> '' AND U.Nome <> '')
AND CONVERT(DATE, DataInizio) <= CONVERT(DATE, GETDATE())
AND CONVERT(DATE, DataFine) >= CONVERT(DATE, GETDATE())
ORDER BY U.IDUtente
能否请您帮我将其转换为光标?我需要使用游标,因为查询的结果有很多行,并且使用它的代码执行起来太慢。