Seite 1 von 1

Sind hier wirklich zwei Abfragen nötig?

Verfasst: Fr, 06.01.2012 22:02
von steppi
Hallo,

ich will eine Datenbank für Quittungserstellung, -verwaltung, -druck usw. basteln.

Ich gebe den Bruttobetrag ein und möchte den Netto- und Steuerbetrag errechnen.

Ist ja ganz einfach: netto=brutto/1,19 (auf 2 Stellen gerundet) und steuer=brutto-netto

Ich bekomme es einfach nicht hin, das mit einer Abfrage zu lösen. Ich brauche zwei, in der ersten berechne ich "netto", in der zweiten dann "steuer". Geht das wirklich nicht in einer Abfrage?

Zweites Problem:
Ich möchte den Betrag in Worten ausgeben. Gibt es eine Funktion in Base, die das macht? Oder muss ich den Weg über eine Tabelle "Betrag", "in_Worten" mit den Einträgen 1 eins, 2 zwei, 3 drei gehen?

Re: Sind hier wirklich zwei Abfragen nötig?

Verfasst: Sa, 07.01.2012 01:06
von F3K Total
Hallo,
eine Abfrage wie folgt

Code: Alles auswählen

SELECT "ID", "Datum", "Bemerkung", "Betrag Brutto", "Betrag Brutto" / 1.19 AS "Netto", "Betrag Brutto" * ( 1 - ( 1 / 1.19 ) ) AS "Steuer" FROM "Quittungen"
reicht. Siehe Anlage.
Wenn Du kein Datum eingibst, wird beim Speichern das aktuelle Datum eingetragen.

Gruß R

Re: Sind hier wirklich zwei Abfragen nötig?

Verfasst: Sa, 07.01.2012 08:53
von steppi
Hallo R,

Deine vorgeschlagenen Formeln hatte ich auch parat, aber so kann es zu Rundungsfehlern kommen. Siehe in deine Beispieltabelle, wo brutto 14,99 netto 12,60 und steuer 2,40 sind. Also wären nach deinem Vorgehen folgende Formeln besser: netto= round(brutto/1.19,2) und steuer= brutto - round(brutto/1.19,2)

Aber meine Frage zielte mehr darauf ab, ob es irgendwie geht, dass ich den gerade in einer Abfrage berechneten Wert "netto" in der gleichen Abfrage schon für weitere Berechnungen einsetzen kann.

Steppi

Re: Sind hier wirklich zwei Abfragen nötig?

Verfasst: Sa, 07.01.2012 10:20
von F3K Total
Moin Steppi,
Round() hat bei mir nicht geholfen, stattdessen hilft es an die 1.19 mindestens zwei Nullen zu hängen.
1.1900
steppi hat geschrieben:Aber meine Frage zielte mehr darauf ab ...
Ich denke mir dass das nicht gehen kann, denn wenn Du erst in einer Abfrage eine Variable definierst, wie soll dieselbe Abfrage die Variable schon kennen?
Wenn Du nur Abfragen möchtest, kannst Du mit einer Unterabfrage arbeiten. Dies entspricht quasi einer zweiten.
Das sieht da z.B so aus,

Code: Alles auswählen

Select "ID", "Datum", "Bemerkung", "Betrag Brutto", "Betrag Brutto", "Netto","Steuer","Netto"*2 as "Netto plus 100%", "Netto"/2 as "50% von Netto", "Netto" * 1.12 as "Tja, die Mehrwertsteuer ist auch nicht mehr das, was sie mal war!" from (SELECT "ID", "Datum", "Bemerkung", "Betrag Brutto", "Betrag Brutto" / 1.1900 AS "Netto", "Betrag Brutto" * ( 1 - (1 / 1.1900) ) AS "Steuer" FROM "Quittungen") 
hat aber den Nachteil ist, dass diese Abfrage für die Dateneingabe ungeeignet ist.

Gruß R