❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Rechnen mit Sume aus Daten und Zählwert

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Moerser01
Beiträge: 28
Registriert: Mo 3. Okt 2016, 18:01

Rechnen mit Sume aus Daten und Zählwert

Beitrag von Moerser01 » Sa 29. Okt 2016, 21:48

Hallo ,

ich brauche schon wieder Eure Hilfe. Nach dem ich aus meiner Tabelle die Urzeiten zusammen gerechnet und Subtrahiert habe und aus einer anderen Tabelle Werte abgezogen habe, muß ich noch die Anzahl aus aus einer Spalte abziehen. Aber ich komme leider nicht weiter. Ich habe es auch schon mit "Abfrage als Bezugstabelle "probiert. Leider ohne Erfolg.
Soweit geht alles

Code: Alles auswählen

SELECT COUNT( "Gesamtdaten"."PauseVon" ) AS "Anzahl", SUM( DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 - "tbl_ma"."SollArbeit" / 1440.00000 ) AS "Überstunden" FROM "Gesamtdaten", "tbl_ma" WHERE ( "Datum" >= :qVON OR :qVON IS NULL ) AND ( "Datum" <= :qBIS OR :qBIS IS NULL ) AND ( LOWER ( "ma_ID" ) LIKE LOWER ( :qma_ID || '%' ) OR :qma_ID IS NULL )
aber mir fehlt noch die Multiplikation mit "tbl_ma"."SollArbeit Also etwa so:


SELECT COUNT( "Gesamtdaten"."PauseVon" ) AS "Anzahl", SUM( DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 -"tbl_ma"."SollArbeit" / 1440.00000 * COUNT( "Gesamtdaten"."PauseVon" ) ) AS "GesamtÜberstunden" FROM "Gesamtdaten", "tbl_ma" WHERE ( "Datum" >= :qVON OR :qVON IS NULL ) AND ( "Datum" <= :qBIS OR :qBIS IS NULL ) AND ( LOWER ( "ma_ID" ) LIKE LOWER ( :qma_ID || '%' ) OR :qma_ID IS NULL )

Vielleicht währe jemand der ein Lösung für mich hat, auch so nett mir zu erklähren was gemacht werden muß und warum. Ich denke das der Ansatz mit der Bezugstabelle nicht so falsch ist. Aber das hat eben auch nicht funktioniert.

Gruß Moerser01

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von RobertG » So 30. Okt 2016, 08:59

Hallo Moerser01,
Moerser01 hat geschrieben: SELECT COUNT( "Gesamtdaten"."PauseVon" ) AS "Anzahl", SUM( DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 -"tbl_ma"."SollArbeit" / 1440.00000 * COUNT( "Gesamtdaten"."PauseVon" ) ) AS "GesamtÜberstunden" FROM "Gesamtdaten", "tbl_ma" WHERE ( "Datum" >= :qVON OR :qVON IS NULL ) AND ( "Datum" <= :qBIS OR :qBIS IS NULL ) AND ( LOWER ( "ma_ID" ) LIKE LOWER ( :qma_ID || '%' ) OR :qma_ID IS NULL )
Das, was Du da machst, ist für mich völlig undurchsichtig: Du multiplizierst die "SollArbeit" mit der "Anzahl" - soll das so sein? Außerdem fehlt wieder die Beziehungsdefinition zwischen "Gesamtdaten" und "tbl_ma": AND "Gesamtdaten"."ma_ID" = "tbl_ma"."ID_ma".

Dann versuchst Du außerdem noch, eine Funktion innerhalb einer anderen Funktion auszuführen: Count() innerhalb von Summe().

Vielleicht meinst Du ja das hier:

Code: Alles auswählen

SELECT COUNT( "Gesamtdaten"."PauseVon" ) AS "Anzahl", SUM( DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000) - (COUNT( "Gesamtdaten"."PauseVon" ) *"tbl_ma"."SollArbeit" / 1440.00000)  AS "GesamtÜberstunden" FROM "Gesamtdaten", "tbl_ma" WHERE ( "Datum" >= :qVON OR :qVON IS NULL ) AND ( "Datum" <= :qBIS OR :qBIS IS NULL ) AND ( LOWER ( "ma_ID" ) LIKE LOWER ( :qma_ID || '%' ) OR :qma_ID IS NULL ) AND "Gesamtdaten"."ma_ID" = "tbl_ma"."ID_ma"
Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Moerser01
Beiträge: 28
Registriert: Mo 3. Okt 2016, 18:01

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von Moerser01 » So 30. Okt 2016, 12:10

Hallo Robert. Du hast Recht wieder habe ich die Beziehung vergessen. Aber leider habe ich immer noch ein Syntexfehler drin. Der kommt immer wenn ich count in die Berechnung einbeziehen. Und ja ich muss die Anzahl mit der Stundenanzahl multiplizieren .Weil er sonst nur einmal 8 Stunden abzieht. Deshalb zähle ich die Felder in dem ein Wert steht und multipliziere ihn mit der Anzahl. Weil aber jeder einen andere Stundensatz hat muß ich SollArbeit rechnen.

Moerser01
Beiträge: 28
Registriert: Mo 3. Okt 2016, 18:01

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von Moerser01 » So 30. Okt 2016, 14:55

Oder kann man Ein-SpaltigeSQL-Befehle nicht mit Mehr-Spaltige- Befehle vermischen.

Vielleicht weil sonst könnte ich ja auch die Summe aus den berechneten Überstundennehmen.

Code: Alles auswählen

SELECT( DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 - "tbl_ma"."SollArbeit" / 1440.00000 ) AS "Überstunden" FROM "Gesamtdaten","tbl_ma" WHERE ( "Datum" >= :qVON OR :qVON IS NULL ) AND ( "Datum" <= :qBIS OR :qBIS IS NULL ) AND ( LOWER ( "ma_ID" ) LIKE LOWER ( :qma_ID || '%' ) OR :qma_ID IS NULL ) AND "Gesamtdaten"."ma_ID" = "tbl_ma"."ID_ma"


Gruß Moerser01

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von RobertG » So 30. Okt 2016, 17:30

Hallo Moerser01,

hast Du Dir einmal den alternativen Code in meinem Beitrag angesehen? Da steht COUNT() nicht innerhalb von SUM(). Zumindest gibt der Code keine Fehlermeldung bei der DB raus, die Du bei einem vorherigen Thread dazu ins Netz gestellt hat.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Moerser01
Beiträge: 28
Registriert: Mo 3. Okt 2016, 18:01

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von Moerser01 » So 30. Okt 2016, 18:26

Ja habe ich probiert. Zeigt aber Fehler an
Habe noch mal rum probiert.
Also als erstes funktioniert der Code

Code: Alles auswählen

SELECT SUM( DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 - "tbl_ma"."SollArbeit" / 1440.00000 ) AS "Überstunden" FROM "Gesamtdaten", "tbl_ma" WHERE ( "Datum" >= :qVON OR :qVON IS NULL ) AND ( "Datum" <= :qBIS OR :qBIS IS NULL ) AND ( LOWER ( "ma_ID" ) LIKE LOWER ( :qma_ID || '%' ) OR :qma_ID IS NULL ) AND "Gesamtdaten"."ma_ID" = "tbl_ma"."ID_ma"
So ganz gut, aber ich bekomme den Filter nicht in mein Formular.

Und AND "Gesamtdaten"."ma_ID" = "tbl_ma"."ID_ma" funktioniert bei mir auch nicht sondern
"Gesamtdaten"."ma_ID" = "tbl_ma"."ID_ma"

Ich glaub ich muß dir mal meine Datenbank schicken.

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von RobertG » So 30. Okt 2016, 19:13

Hallo Moerser01,
Moerser01 hat geschrieben:Ich glaub ich muß dir mal meine Datenbank schicken.
Mach' das.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Moerser01
Beiträge: 28
Registriert: Mo 3. Okt 2016, 18:01

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von Moerser01 » So 30. Okt 2016, 19:41

Ok
Schau dir bitte mal das Suche- Formular an.
da will ich die Überstunden für den gewählten Zeitraum anzeigen lassen. Abfragefunktioniert ist integriert aber ich bekomme es nicht in den Filter rein.
Danke.
Dateianhänge
Arbeitszeiten.zip
(60.87 KiB) 156-mal heruntergeladen

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von RobertG » So 30. Okt 2016, 20:27

Hallo Moerser01,

wenn Du bereits eine Filtertabelle angelegt hast, dann machen Parameterabfragen für mich keinen Sinn mehr - es sei denn, Du willst die Parameter unabhängig von der Filtertabelle irgendwo anders nutzen.

Deine Abfrage geht auch so, ohne dass Du Parameter benötigst:

Code: Alles auswählen

SELECT "Gesamtdaten"."Datum", "Gesamtdaten"."Von", "Gesamtdaten"."Bis", "tbl_ma"."SollArbeit", DATEDIFF( 'minute', "Gesamtdaten"."Von", "Bis" ) / 1440.00000 AS "Anwesenheit", "Gesamtdaten"."PauseVon", "Gesamtdaten"."PauseBis", DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 AS "Pause", DATEDIFF( 'minute', "Von", "Bis" ) / 1440.00000 - DATEDIFF( 'minute', "PauseVon", "PauseBis" ) / 1440.00000 - "tbl_ma"."SollArbeit" / 1440.00000 AS "Überstunden", "tbl_zeittyp"."Zeittyp" FROM "Gesamtdaten", "tbl_ma", "tbl_zeittyp" WHERE "Datum" >= IFNULL((SELECT "VON" FROM "T_FILTER" WHERE "ID_F" = TRUE),"Datum") AND "Datum" <= IFNULL((SELECT "BIS" FROM "T_FILTER" WHERE "ID_F" = TRUE),"Datum") AND "ma_ID" = IFNULL((SELECT "ma_ID" FROM "T_FILTER" WHERE "ID_F" = TRUE),"ma_ID") AND "Gesamtdaten"."ma_ID" = "ID_ma" AND "Gesamtdaten"."zeittyp_ID" = "tbl_zeittyp"."ID_zeittyp"
Dann kannst Du das Unterformular ganz nach oben ziehen und auch dieses Konstrukt mit einem Formular, das nur auf einer Abfrage beruht, getrost beiseite legen.
Ähnlich würde ich bei anderen Abfragen vorgehen. Da scheinen ja noch mehr in dem Formular genau die gleichen Parameter zu benötigen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Moerser01
Beiträge: 28
Registriert: Mo 3. Okt 2016, 18:01

Re: Rechnen mit Sume aus Daten und Zählwert

Beitrag von Moerser01 » So 30. Okt 2016, 21:10

Danke funktioniert super.
Versteh ich das richtig du hast den T-filter in die Formel direkt eingebaut und das kann ich immer so machen so das ich mir das Verknüpfen im Formular erspare?

Danke und Schönen Sonntag noch.

PS:Als nächste werde ich mich ans Dimbox schreiben machen.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten