Random "Invalid use of Null" fejl
Jeg har følgende sql sætning:SELECT PL.Id, PL.Name, PL.Email, Sum(TournamentPoints.TournamentPoint) AS Points, (SELECT Count(*) FROM POS WHERE POS.PlayerId=PL.Id) AS Tournaments FROM PLAYER PL LEFT JOIN (SELECT PO.PlayerId, Sum(CInt(SELECT Count(*)+1 FROM POS WHERE TournamentId=PO.TournamentId)-IIf(IsNull(PO.Pos),1,PO.Pos)) AS TournamentPoint FROM POS PO GROUP BY PO.PlayerId, PO.Pos, PO.TournamentId) AS TournamentPoints ON PL.Id=TournamentPoints.PlayerId GROUP BY PL.Id, PL.Name,PL.Email ORDER BY Sum(TournamentPoints.TournamentPoint) DESC
...som i korte træk udtrækker en liste med spillere, det antal turneringer de har deltaget i, og deres samlede antal point beregnet som summen af pointene i de turneringer de har deltaget, hvor point pr. turnering = antal deltagere - vedkommendes plads + 1 (dvs. en 1. plads giver 3 point, hvis der er 3 spillere, en 2. plads 2 point osv.).
Problemet er, at jeg en gang imellem?! - ganske random, får fejlen "Invalid use of Null", når jeg loader den aspx side, som kører forespørgslen op imod Access databasen. Jeg kan sidde og reloade siden gang på gang hvor det går godt og så måske i snit hver 10. gang får jeg fejlen!?!
Problemet er givetvis af IIf(IsNull(PO.Pos),1,PO.Pos) returnerer null en gang imellem selvom den ikke burde gøre det. Jeg har prøvet med Nz i stedet men den kender Microsoft.Jet.OLEDB.4.0 driveren åbenbart ikke til.
Nogle der har en idé til hvordan jeg løser problemet?