Chirin Geschrieben 24. Mai 2013 Teilen Geschrieben 24. Mai 2013 (bearbeitet) 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 24. Mai 2013 von Chirin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rny Geschrieben 24. Mai 2013 Teilen Geschrieben 24. Mai 2013 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: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chirin Geschrieben 24. Mai 2013 Autor Teilen Geschrieben 24. Mai 2013 (bearbeitet) 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 24. Mai 2013 von Chirin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chirin Geschrieben 27. Mai 2013 Autor Teilen Geschrieben 27. Mai 2013 Fiese Erkältung.. Mit der richtigen Spaltenbezeichnung ("Vertragssumme" statt "Vertragsnummer") hats funktioniert. Danke fürs Schließen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.