if funtie in query ?

Status
Niet open voor verdere reacties.

mustangBE

Gebruiker
Lid geworden
2 jun 2007
Berichten
349
hallo

ik volgende query
Code:
SELECT        Auto_Merk, Plaats, ref_vast, ref_es, Ref, Courant, Omschrijving, Datum, Snijden, snijden_foto, Bol, ref_set7P, ref_set13P, werk_vast, werk_orig, werk_es, 
                         opleg_13P, prijs_vast, prijs_es, prijs_set7P, prijs_set13P, Extra_ref, Extra_info, Extra_prijs, ROUND((prijs_es * 1.21 + werk_es + prijs_set7P + Extra_prijs) 
                         / 10, 0) * 10 AS geplaatstes, ROUND((prijs_vast * 1.21 + werk_orig + prijs_set7P + Extra_prijs) / 10, 0) * 10 AS geplaatstorig, 
                         ROUND((prijs_vast * 1.21 + werk_vast + prijs_set7P + Extra_prijs) / 10, 0) * 10 AS geplaatstvast, Cataloog_ID, checkvast, checkorig, checkes
FROM            Cataloog

in volgend gedeelte mag extra_prijs enkel worden verrekend als er iets is ingevuld , dus als de cel leeg is mag deze niet in de code worden op genomen.
Code:
ROUND((prijs_es * 1.21 + werk_es + prijs_set7P +[COLOR="#FF0000"] Extra_prijs[/COLOR]) / 10, 0) * 10 AS geplaatstes
ik dacht aan een if functie , maar weet niet of dat kan in een query
 
Mogelijk kan het met een CASE statement. Maar als etra leeg is vormt dat toch geen probleem?
 
pseudocode:

Code:
dim prijs as double
if extra_prijs = nothing then prijs = x else prijs = y
query = .... prijs .....

moeilijker dan dit hoef je het niet te maken.

[edit] Ervanuitgaande dat het om VB gaat i.c.m. een database?[/edit]
 
Laatst bewerkt:
Zoals ik al aangaf, kun je dit deels opvangen met een CASE (SQL) statement. Echter als je de database vult met standaard "0" waarden dan zou het niet uit moeten maken. Als de database value voor extra_prijs gewoon netjes op 0 staat dan wordt de uitkomst van de query altijd juist.
 
ja , maar er staat al een hoop data in.
gaat dat dan nog om bij de bestaande date een 0 te zetten
 
Ja hoor, een beetje afhankelijk hoe het nu gevult is en welke database je gebruikt. Ik zou wel een testdatabase gebruiken om mee te proberen en niet je main database :)

[sql]
UPDATE cataloog
SET extra_prijs = 0
WHERE extra_prijs = NULL
[/sql]

Dat is een voorbeeld van hoe het zou kunnen en je database instellen om bij inserts het veld op nul te zetten vanaf nu. Nogmaals eerst testen op een aparte database :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan