Toon posts:

[SQL Server 2000] SP plaatst null waarde in record

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mensen,

Ik zit met een (klein) probleem. Mijn applicatie voert zodra die gestart wordt een SP uit, om een restantbedrag te berekenen. Hiervoor worden regels uit een andere tabel gebruikt. Deze worden bij elkaar opgeteltd, per ID. Echter, op mijn registratiepagina kun je een nieuwe ID toevoegen. Alle waardes worden ingevultd nadat de gebruiker zijn keuzes op een formulier heeft gegeven. Alleen zijn er in eerste instantie nog geen regels. Het probleem is dus, dat als de SP wordt uitgevoerd in de regeltabel de uitgaven worden opgeteld. Als die er nog niet zijn, wordt de berekening eigenlijk decBeginBedrag - met als resultaat dat decRestant ook wordt. Maar dat wil ik dus niet. Als er nog geen regels zijn, moet het decBeginBedrag - 0 zijn met als resultaat het door de gebruiker geselecteerde beginbedrag. Ik weet dat het iets simpels is, maar kan er helaas even niet opkomen. Hieronder een klein stukje relevant sql statement.

code:
1
2
3
4
5
6
7
8
9
UPDATE tbl_kaart
SET decRestant = decBeginBedrag -
        (
            select sum(decUitgavenKlant) 
            from tbl_Regels 
            where intkaartID = e.intkaartID         
            group by intkaartID
        )
from        tbl_kaart e


Ik hoop dat jullie mij weer een stukje verder kunnen helpen. Bedankt in ieder geval!

[ Voor 2% gewijzigd door whoami op 19-05-2006 19:12 ]


  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Hier is de isNull functie voor. Kun je opzoeken in books online. Even uit mij hoofd:

code:
1
2
3
4
5
6
7
8
9
UPDATE tbl_kaart
SET decRestant = decBeginBedrag - isNull (
        (
            select sum(decUitgavenKlant) 
            from tbl_Regels 
            where intkaartID = e.intkaartID         
            group by intkaartID
        ), 0 )
from         tbl_kaart e

Verwijderd

Topicstarter
Ja idd., dat is het. Dank voor de snelle reactie.

Verwijderd

Topicstarter
Oh, en sorry whoami voor de gigantische spelfout, zal het nooid meer doen :+ !