felder in dbf datenbank berechnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

felder in dbf datenbank berechnen

Beitrag von kannenklaus »

hallo

eine base-datei greift über ihren dbf-treiber auf eine dbf tabelle zu. kann ich dabei ein berechnetes feld nach folg. schema erzeugen?

(feld1+feld2)*feld3

freue mich auf eine anwort.

grüße

klaus
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: felder in dbf datenbank berechnen

Beitrag von pmoegenb »

Hallo Klaus,

mit dBase-Dateien nicht, mit HSQLDB ja.

Falls Du HSQLDB nicht nehmen möchtest weil die DB nicht extern ist, kannst Du Dir auch einmal SQLite http://www.sqlite.org/ ansehen.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: felder in dbf datenbank berechnen

Beitrag von kannenklaus »

hallo peter
mit dBase-Dateien nicht,
SCHADE; leider kommt man schnell an grenzen von base, die auch den produktiven einsatz im büroalltag verhindern. ich kann natürlich access dazwischen schalten und dann diese ergebnisse in base darstellen. aber warum dann base?

grüße

klaus
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: felder in dbf datenbank berechnen

Beitrag von pmoegenb »

Hallo Klaus,

wenn es an Base liegen würde, wären berechnende Felder auch bei HSQLDB nicht möglich. Ich muss allerdings erwähnen, dass ich den Test nur für dBase IV untersucht habe. dBase IV wird von OOo, bzw. Base nativ unterstützt.

Ich denke, dass die Macher von OOo die Unzulänglichkeiten von dBase IV erkannt haben und deshalb HSQLDB in OOo 2 eingebaut haben.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: felder in dbf datenbank berechnen

Beitrag von kannenklaus »

hallo peter,

und es geht trotz dbf-tabellen doch, wenn man die ROUND-funktion verwendet wie folgt verwendet

ROUND( ("AREA_HA" + "PREIS_QM") * 2, 0 )

hier wird das feld fläche in ha mit dem preis addiert, dann mit 2 multipliziert. das ganze ohne nachkommastellen

grüße

klaus
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: felder in dbf datenbank berechnen

Beitrag von pmoegenb »

Hallo Klaus,

ich fass es nicht, ich kann Deine Angaben bestätigen. Round dient eigentlich dafür, einen nummerischen Wert zu runden, aber wenn's wirkt!
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: felder in dbf datenbank berechnen

Beitrag von kannenklaus »

hallo peter,

round berechnet wie werte bei der ooo dev 2.3 richtig und bei der deutsche 2.2.1 version falsch. trifft das bei dir auch zu.

grüße

klaus
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: felder in dbf datenbank berechnen

Beitrag von kannenklaus »

hallo

es liegt nicht an der oo-version, sondern an der anzahl von nachkommastellen (hier11). dann hat die funktion round nicht das richtige ergebnis geliefert.

grüße

klaus
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: felder in dbf datenbank berechnen

Beitrag von pmoegenb »

kannenklaus hat geschrieben:hallo peter,

round berechnet wie werte bei der ooo dev 2.3 richtig und bei der deutsche 2.2.1 version falsch. trifft das bei dir auch zu.
Hallo Klaus,

ich habe folgende Varianten durchgespielt:

Zwei Zeilen mit jeweils 2 Betragsspalten

Betrag Addbetrag
100,585 15,000
150,984 10,000

Die Syntax

Code: Alles auswählen

ROUND( ( Betrag * 2),2) AS Summe
liefert für die 1. Dateizeile = 201,17 und für die 2. Dateizeile = 301,97.

Die Syntax

Code: Alles auswählen

,ROUND ((Betrag + AddBetrag),2) AS Ergebnis
liefert für die 1. Datenzeile = 115,59 und für die 2. Dateizeile = 160,98.

Aus meiner Sicht wurde richtig gerundet.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Antworten