PDA

Vollständige Version anzeigen : sql/ Was mache ich falsch?


ina
02.05.2001, 07:27
SELECT Gesamtsumme.Angebotsnummer, Gesamtsumme.Gesamtsumme, If
Gesamtsumme.Gesamtsumme > 1000 then 10% else 20% End If As Rabatt
>FROM Gesamtsumme;

Ich will mit Hilfe von SQL Rabatt ausrechnen, was mache ich falsch?

Ina

HPG
02.05.2001, 08:10
Hallo Ina,

versuche es mal mit
SELECT Angebotsnummer,Gesamtsumme,MitRabatt10 FROM Gesamtsumme
WHERE Gesamtsumme > 1000
AND MitRabatt10 = Gesamtsumme - (Gesamtsumme/100*10)

Wenn du noch die 20% angezeigt bekommen möchtest kommt noch eine UNION Syntax dazu, sieht dann gesamt so aus:

SELECT Angebotsnummer,Gesamtsumme,MitRabatt10 FROM Gesamtsumme
WHERE Gesamtsumme > 1000
AND MitRabatt10 = Gesamtsumme - (Gesamtsumme/100*10)
UNION
SELECT MitRabatt20 FROM Gesamtsumme
WHERE Gesamtsumme < 1000
AND MitRabatt20 = Gesamtsumme - (Gesamtsumme/100*20)

Damit müßtest du zusätzlich zwei Spalten zur Laufzeit, namens MitRabatt10,sowie MitRabatt20 angezeigt bekommen, die die % schon berücksichtigt hat.
P.S. Kein Komma nach dem letzten, unter Select, angegebenen Spaltenamen
Ich hoffe, es klappt, habe ich mal schnell hingeschrieben
Gruß
HPG

toja
02.05.2001, 08:17
Guten Morgen Ina,
ich bin der meinung, dass du eine if-bedingung nicht so einfach in dein select-statement einbauen kannst. dazu wirst du wohl auf visual basic zurückgreifen müssen. du wirst eine fkt schreiben müssen, in der eine schleife deine gessum-tab durchläuft. und deine if-bedingung prüft.
wenn du willst kann ich dir so eine prozedur schreiben
gruss toja

marmic55
02.05.2001, 08:35
Guten Morgen,

diese Selectanweisung müsste folgendermaßen aussehen:
======================================
SELECT Gesamtsumme.Angebotsnummer, Gesamtsumme.Gesamtsumme, IIf(Gesamtsumme.Gesamtsumme>1000,10,20) AS Rabatt
FROM Gesamtsumme;
======================================

Führe das mal als Abfrage aus. Wenn etwas schief läuft, könnte es daran liegen, dass statt Kommas beim "IIf" Simikolons gesetzt werden müssen. Das weiß ich jetzt nicht genau.
Versuche es einmal.

Michael

holgii
02.05.2001, 09:52
Hallo ina,

SELECT Gesamtsumme.Angebotsnummer, Gesamtsumme.Gesamtsumme,
iif(Gesamtsumme.Gesamtsumme > 1000;Gesamtsumme.Gesamtsumme*0,1;Gesamtsumme.Gesamtsumme*0,2) As Rabatt FROM Gesamtsumme

Gruß
holgii

toja
02.05.2001, 10:39
@Ina,
tschuldigung, ich habe nicht gewusst, dass man iff-bed.en in sql-abfragen einbauen kann.
daher ist mein vorschlag wohl zu umständlich.
aber...man lebt, um zu lernen :)
viele grüsse toja