Avatar billede ulrikp Nybegynder
04. oktober 2005 - 21:30

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?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester