Efter lite tester verkar det som om (DATEDIFF(mm, Created, @month) % Period = 0) kollas före (Period > 0), har testat med att sätta paranteser på olika sätt men utan resultat :(
Frågan#1
Jag har plötsligt börjat få ett mystiskt felmeddelande på en SQL-sats som har fungerat länge:
SELECT
ID,
ProductID,
AccountNamesID,
UserID,
ServerID,
Article,
[Name],
Description,
Period,
Qty,
Price,
Created,
Ended
FROM
ServiceItems
WHERE
(Period > 0)
AND
(UserID = @userid)
AND
(DATEDIFF(mm, Created, @month) % Period = 0)
AND
(Ended IS NULL OR Ended > GETDATE())
Jag har lyckats utesluta felet till följande del:
DATEDIFF(mm, Created, @month) % Period = 0
@month är '2007-08-01', Created är '2005-08-11' och Period är 12 i raden(som jag trots allt får fram men felmeddelandet uppstår ändå!?), jag vet att nästa rad som skulle ha tagits fram har Period=0, men den filtrerar jag bort i SQL-frågan.
Vad är fel?