webForumDet fria alternativet

YEAR, MONTH, DAY strul

2 svar · 258 visningar · startad av Erik Juhlin

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#1

Vad är problemet med den här SQL:en?

SELECT YEAR(a1.ActivityStartDate) AS ActivityStartYear
, MONTH(a1.ActivityStartDate) AS ActivityStartMonth, DAY(a1.ActivityStartDate) AS ActivityStartDay
[blue], (SELECT COUNT(*) FROM tblM_Activity a2 WHERE YEAR(a2.ActivityStartDate) = YEAR(a1.ActivityStartDate)
 AND MONTH(a2.ActivityStartDate) = MONTH(a1.ActivityStartDate) AND DAY(a2.ActivityStartDate) = DAY(a1.ActivityStartDate)) -- raden med felet[/blue]
 FROM tblM_Activity a1
 WHERE YEAR(a1.ActivityStartDate) = 2002 AND MONTH(a1.ActivityStartDate) = 09
 GROUP BY YEAR(a1.ActivityStartDate), MONTH(a1.ActivityStartDate), DAY(a1.ActivityStartDate)
 ORDER BY YEAR(a1.ActivityStartDate), MONTH(a1.ActivityStartDate), DAY(a1.ActivityStartDate)

Jag får felet:

Server: Msg 8630, Level 17, State 38, Line 1
Internal Query Processor Error: The query processor encountered an unexpected error during execution.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vad händer om du inte använder en skalär subselect

SELECT YEAR(a1.ActivityStartDate) AS ActivityStartYear,
   MONTH(a1.ActivityStartDate) AS ActivityStartMonth, 
   DAY(a1.ActivityStartDate) AS ActivityStartDay,
   COUNT(*)  
from tblM_Activity a1
 WHERE YEAR(a1.ActivityStartDate) = 2002 
AND MONTH(a1.ActivityStartDate) = 09
 GROUP BY 
  YEAR(a1.ActivityStartDate), 
   MONTH(a1.ActivityStartDate), 
  DAY(a1.ActivityStartDate)
 ORDER BY 
   YEAR(a1.ActivityStartDate), 
   MONTH(a1.ActivityStartDate), 
   DAY(a1.ActivityStartDate)

Av felmeddelandet att döma så har du stött på något fel i databashanteraren.

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#3

Men, men, men... :o

Funkar! :e

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)