Query SOM

Status
Niet open voor verdere reacties.

heyajohnny

Gebruiker
Lid geworden
29 aug 2007
Berichten
35
Hallo,
Ik heb hier een query waarbij ik een bedrag met een kortingspercentage wil delen, maar dat lukt niet helemaal. Nu wil ik de prijs delen door 1, + de inhoud van korting.

Ik heb dan bijvoorbeeld bij korting staan: 20
De query moet hem dan als volgt lezen: Prijs / 1,20

Code:
SQL2 = "SELECT SUM (Prijs / (1,Korting)) From Factuurposten WHERE FactuurID = '" & txtFactuurID.value & "'"
Set WorkRS2 = CurrentDb.OpenRecordset(SQL2, dbOpenSnapshot, dbReadOnly)

Weet iemand hoe ik dat neer moet zetten, want deze hierboven geeft aan.
Syntaxisfout (komma) in query-expressie
 
Code:
SQL2 = "SELECT SUM (Prijs /" & (100 + Korting)/100 & ") From Factuurposten WHERE FactuurID = '" & txtFactuurID.value & "'"
Set WorkRS2 = CurrentDb.OpenRecordset(SQL2, dbOpenSnapshot, dbReadOnly)
De berekening (100+Korting)/100 kan je het best buiten de query houden omdat deze maar eenmaal uitgerekend hoeft te worden.

Ik neem tenminste aan dat Korting geen veld uit je tabel is...

als dat wél het geval is:
Code:
SQL2 = "SELECT SUM (Prijs /(100 + Korting)/100) From Factuurposten WHERE FactuurID = '" & txtFactuurID.value & "'"
Set WorkRS2 = CurrentDb.OpenRecordset(SQL2, dbOpenSnapshot, dbReadOnly)
In plaats van strings aan elkaar te plakken kan je beter een berekening uitvoeren. Dat gaat sneller.
 
Korting is een veld uit mijn tabel, want voor elk record heb ik een verschillend kortingspercentage.

Ik had weer niet verder gekeken dan mijn neus lang is, want je kan natuurlijk op verschillende manieren het percentage berekenen.
De onderste oplossing is goed, op de / ipv * na. (Zal wel een snelheidsfoutje zijn).

Code:
SQL2 = "SELECT SUM (Prijs /(100 + Korting)*100) From Factuurposten WHERE FactuurID = '" & txtFactuurID.value & "'"
Set WorkRS2 = CurrentDb.OpenRecordset(SQL2, dbOpenSnapshot, dbReadOnly)

Super bedankt Guus!
Grappige signature met de boterhammetjes btw... :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan