geen resultaat bij sum in SQL opdracht

  • Onderwerp starter Onderwerp starter ivdh
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ivdh

Gebruiker
Lid geworden
2 jun 2004
Berichten
54
Ik probeer via een sql opdracht een aantal te krijgen. Dat lukt in principe alleen als ik geen resultaten heb (door de selectie) wordt er uiteraard ook niets opgeteld. Ik krijg dan "niets" als resultaat. Ik wil echter 0 als resultaat, want anders kom ik verder in de problemen met de optelling van verschillende resultaten omdat een "lege" waarde optellen niet lukt.
 
Ik begrijp niet precies wat je bedoelt maar ik heb er wel eens iemand over gehoord, die gebruikte de funktie NZ om dit op te lossen, kun je je probleem nog een beetje toelichten misschien heb ik nog wel een oplossing.
 
Ik ga proberen het duidelijker te omschrijven:
Ik heb een sql opdracht als deze:

SQL = "SELECT Sum(Veld1+Veld2+Veld3) FROM Tabel WHERE Veld1 LIKE '%test%'"

Ik wil hiermee als resultaat krijg het totaal van alles records waarbij de waarde van veld1, veld2 en veld3 worden opgeteld.

Echter als er geen records zijn die voldoen aan de voorwaarde krijg ik als resultaat een "niets". Ik wil in dat geval graag 0 als resultaat.
 
Probeer eens de eigenschap notatie van het veld waar de optelling gedaan wordt te vullen met 0.00;0.00;0;0
 
Misschien met de iif-functie

SQL = "SELECT iif((Sum(Veld1+Veld2+Veld3)) is null;0;Sum(Veld1+Veld2+Veld3)) FROM Tabel WHERE Veld1 LIKE '%test%'"

Afhankelijk van waar je de query gebruikt kan het zijn dat je geen ; maar , moet gebruiken binnen iif.
 
Er is misschien nog een mogelijkheid:

SQL = "SELECT Sum(0+Veld1+Veld2+Veld3)) FROM Tabel WHERE Veld1 LIKE '%test%'"

Maar bedoel jij overigens bij niets dat je een veld ziet met niets erin of dat je geen veld ziet?

De groeten,
Mark
 
Wat je terug krijgt is de waarde NULL.
Je kunt die omzetten in de waarde 0 door gebruik te maken van de nz-functie:

SQL = "SELECT nz(Sum(Veld1+Veld2+Veld3),0) FROM Tabel WHERE Veld1 LIKE '%test%'"

Je krijgt dan gewoon 0 terug.
 
Ik was er ff niet, dus een beetje late reactie, maar met de laatste oplossing is het gelukt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan