Zum Inhalt springen

Case-Konstrukt bitte überprüfen


Chirin

Empfohlene Beiträge

Hallo,

bin mittlerweile wohl etwas verwirrt von den verschiedenen SQL-Versionen und finde grad meinen Fehler nicht.

Ermittelt werden sollen die Provisionssätze, die Vertragssummen hab ich vorher mit der SUM-Funktion in einer separaten Spalte zusammenrechnen lassen (siehe Quelltext)

Die ersten beiden Felder hab ich noch im Editor zusammen geklickt, die Case-Anweisung musste ich aber selbstverständlich per Hand schreiben.

Angeblich fehlt nun noch ein Operator, aber netterweise zeigt er mir ja nich, wo. Und ich seh den Fehler auch grad nich.

(Version: SQL aus Access 2010, MySQL)

SELECT Aussendienstmitarbeiter_Vertraege.Aussendienstmitarbeiter,

Sum(Aussendienstmitarbeiter_Vertraege.Vertrag) AS Vertragssumme,

(case Vertragssumme when Vertragssumme <20000 then '0 %'

when Vertragssumme >=20000 AND Vertragssumme <40000 Then '1 %'

when Vertragssumme >=40000 AND Vertragssumme <60000 Then '2 %'

when Vertragssumme >=60000 AND Vertragssumme < 80000 then '3 %'

when Vertragssumme >=80000 AND Vertragssumme < 100000 then '4 %'

when Vertragssumme >= 100000 then '5 %' END) as Provision

FROM Aussendienstmitarbeiter_Vertraege

GROUP BY Aussendienstmitarbeiter_Vertraege.Aussendiensmitarbeiter;

Edit: Zeile 1 des Codes könnte bisschen seltsam aussehen. Der Aussendienstmitarbeiter ist eigentlich auch als "Aussendienstmitarbeiter" auch so hier.

Bearbeitet von Chirin
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das mit dem Alias (Vertragssumme) funktioniert vermutlich nicht so ohne weiteres in dem Case, außerdem vermischst du zwei Möglichkeiten "Case-Konstrukte" zu basteln.

1.Möglichkeit:


CASE 1+1

    WHEN 2 THEN "zwei"

    WHEN 1 THEN "eins"

END;

2. Möglichkeit

CASE

    WHEN 1=1 THEN "true"

    WHEN 1=2 THEN "false"

END;

Vielleicht hilft dir das schon weiter, ist aber ohne Gewähr weil ich keine Ahnung von Access habe.

Alternativ Vertragssumme einfach durch 20000 teilen und auf int casten :floet:

Link zu diesem Kommentar
Auf anderen Seiten teilen

leider nicht wirklich.

Hab inzwischen bisschen weiter gelesen und bin auf die Funktion Schalter (Switch) gestoßen und habe versucht, die im Editor zu nutzen. Leider weiterhin ohne Erfolg. Vll wird's hier etwas klarer:

Provisionssatz: Schalter(

[Vertragsnummer]<20000;'0 %';

[Vertragsnummer]>=20000 Und [Vertragsnummer]<40000;'1 %';

[Vertragsnummer]>=40000 Und [Vertragsnummer]<60000;'2 %';

[Vertragsnummer]>=60000 Und [Vertragsnummer]<80000;'3 %';

[Vertragsnummer]>=80000 Und [Vertragsnummer]<100000;'4 %';

[Vertragsnummer]>=100000;'5 %')

Bin weiterhin für Vorschläge offen :))

Edit: Als If-Anweisung mag ichs nich wirklich in Access machen. Bei der Menge an Bedingungen sieht das wohl ziemlich unschick aus.

Bearbeitet von Chirin
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...