Abfrage Rechnen Wenn Funktion?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Abfrage Rechnen Wenn Funktion?

Beitrag von Vanessa Sturm »

Hallo Ihr alle,

kann ich in einer Abfrage die mir was ausrechnen soll eine Wenn funktion einbauen?

Also zum Bsp. Select Wenn "Summe" < als 5 dann *5 wenn "Summe" >5 <7 dann *7.5 wenn "Summe" >7 <12 dann * 10 wenn "Summe" >12 * 12.5

Ich hoffe Ihr versteht was ich meine.

Gruß
Vanessa
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von RobertG »

Hallo Vanessa,

versuche es einmal mit CASE WHEN ...
Aus dem Handbuch:
CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] END
Wenn expr1 wahr ist wird v1 zurückgegeben. [Optional können weitere Fälle angegeben werden] Sonst wird v4 wiedergegeben oder
NULL, wenn kein ELSE formuliert ist.
CASE WHEN DAYOFWEEK("Datum")=1 THEN 'Sonntag' WHEN DAYOFWEEK("Datum")=2 THEN 'Montag' ... END
könnte per SQL den Tagesnamen ausgeben, der sonst in der Funktion nur in Englisch verfügbar ist.
Wenn Du rechnen willst, dann dürfen die Zahlen aber nicht in Hochkommata stehen.

Gruß

Robert
Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von Vanessa Sturm »

Hi Robert,

Danke erst mal für deine Hilfe.

Ich habe es ausprobiert. Und zwar so :

SELECT Case When ("Bundle") <5 then ("Bundle"*5) when ("Bundle") >5 then ("Bundle"*7.5) when ("Bundle") >7 then ("Bundle"*10) when ("Bundle") >13 then ("Bundle"*12.5) end FROM "Summe "

Bundle enthält den wert gerade von 15 als lösung rechnet er mir 112,5 aus. Ich finde den fehler nicht. :( Du vielleicht?

Gruß Vanessa
Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von Vanessa Sturm »

Juhuuuu hab den fehler gefunden

So ist es richtig geschrieben.

SELECT Case When ("Bundle") <5 then ("Bundle"*5) when ("Bundle") <7 then ("Bundle"*7.5) when ("Bundle") <12 then ("Bundle"*10) when ("Bundle") >13 then ("Bundle"*12.5) end FROM "Summe "

Danke für deinen grund gedanke.
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von Toxitom »

Hallo Vanessa,
So ist es richtig geschrieben.
nicht ganz;) - der Fall, dass "Bundle" genau 12 ist, wird nicht berücksichtigt!

Also: die letzte "when" bedingung ersetzen durch :

Code: Alles auswählen

... else ("Bundle"*12.5) end....
Dann passt es;)

Generell gilt: Wenn-Bedingugen werden von vorne nach hinten abgearbeitet und die erste passende Bedingung wird ausgeführt;)

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von Vanessa Sturm »

Guten Morgen Tom,

habe ich gemacht und jetzt kommt immer Syntax fehler. :( jetzt will er nicht mehr.

Code: Alles auswählen

SELECT CASE WHEN ( "Bundle" ) < 5 THEN ( "Bundle" * 5 ) WHEN ( "Bundle" ) < 7 THEN ( "Bundle" * 7.5 ) WHEN ( "Bundle" ) < 12 THEN ( "Bundle" * 10 ) else ( "Bundle" ) > 13 then ( "Bundle" * 12.5 ) END AS "Provi Bundle" FROM "Summe "
gruß Vanessa
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von Toxitom »

Hallo Vanessa,

korrekt lesen hilft;))

Nicht:

Code: Alles auswählen

... else ( "Bundle" ) > 13 then ( "Bundle" * 12.5 ) END ..... 
Sondern nur:

Code: Alles auswählen

... ELSE  ( "Bundle" * 12.5 ) END 
VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Abfrage Rechnen Wenn Funktion?

Beitrag von Vanessa Sturm »

Danke Tom,

ja wer lesen kann ist klar im Vorteil.


jetzt habe ich noch mal ne kurze Frage da zu. Wie kann ich die Wenn Abfrage schreiben wenn er Rechnen soll.

also
1-2 = 0
ab 3 -8 = 5
ab 9 = 10


er soll auch immer egal wie viel zähler es sind immer bei 3-8 5 rechnen.

z.b 12 punkte.
punkte 1-2 = 0
Punkte 3-8= 30
ab 9 = 40

Insgesamt 70

gruß Vanessa
Antworten