Hej jag har en sql-fråga som ställs mot en sqlserver 2005 databas. Den fungerar, dock med ett mindre tillfredställande resultat, det menas att den tar väldigt lång tid att köra.
SELECT ID, NAME, LOGIN, TIME_STAMP,
case when HAS_SMS = 1 then 'JA' else 'NEJ' end as HASSMS,
'CustomerEdit.aspx?Customer=' + case when ACCESS_LEVEL = 3 then convert(varchar,PARENT_USER_ID) else convert(varchar,ID) end as LINK,
'CustomerSMS.aspx?Customer=' + case when ACCESS_LEVEL = 3 then convert(varchar,PARENT_USER_ID) else convert(varchar,ID) end as SMSLINK,
PASSWORD, COMPANY,
case when COUNTER.CountAddresses IS NULL then '0' else COUNTER.CountAddresses end As strCountAddresses,
case when MAXADDRESSES = 0 OR MAXADDRESSES IS NULL then 'Unlimited' else convert(varchar,MAXADDRESSES) end As strMaxAddresses,
(HAS_1 + HAS_2 + HAS_3 + HAS_4 + HAS_5 + HAS_6 + HAS_7) AS CountModules
FROM CUSTOMER C
LEFT JOIN
(SELECT DL.CUSTOMER_ID, COUNT(*) AS CountAddresses
FROM DISTRIBUTION_LIST DL INNER JOIN SUBSCRIBER S ON
S.DISTRIBUTION_LIST_ID = DL.ID
WHERE REGISTERED = 1 GROUP BY DL.CUSTOMER_ID) AS COUNTER ON C.ID = COUNTER.CUSTOMER_ID
where ACCESS_LEVEL <> 3
ORDER BY TIME_STAMP DESC
All hjälp uppskattas.
/F