Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10 Min) (https://www.delphipraxis.net/68072-arbeitszeit-eines-mitarbeiter-ausrechen-100-stunden-10-min.html)

Karstadt 24. Apr 2006 14:43

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
wie genauf funtioniert das?

ein cast auf TIME.

mkinzler 24. Apr 2006 16:28

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
SQL-Code:
select MA_name, sum(cast(MA_arbeiztszeit as TIME)) as summe from Tabelle group by MA_name;

mkinzler 24. Apr 2006 16:40

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Ich habe mir das ganze nochmal angesehen und habe entdeckt, daß hier ein Denkfehler vorliegt. Daten vom Typ TIME sind ja Uhrzeiten, diese kann mann nicht addieren. Ich würde die Datenbank so anpassen. das du Beginn(Zeit) und Ende(Zeit) in die Tabelle schreibst und dann über die Dauer summierst. Dann sollte es funktionieren.

SQL-Code:
CREATE TABLE `projekte_ma` (
  `id_pma` int(10) unsigned NOT NULL auto_increment,
  `pma_ar_beginn` time default NULL,
  `pma_ar_ende` time default NULL,
  PRIMARY KEY (`id_pma`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SQL-Code:
select id_pma, sum( pma_ar_ende - pma_ar_beginn) / 3600 as summe from Tabelle group by id_pma;

mquadrat 24. Apr 2006 16:42

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Addieren kann man sie wohl schon. Was genau da rauskommt, könnt ich jetzt nur bei Firebird sagen, da liegt das Buch neben mir ;)

Das Problem ist wohl eher, was passiert bei mehr als 24 Stunden?

mkinzler 24. Apr 2006 16:45

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Zitat:

Addieren kann man sie wohl schon. Was genau da rauskommt, könnt ich jetzt nur bei Firebird sagen, da liegt das Buch neben mir Wink
Ein Fehler:
Zitat:

Zitat von Firebird Server
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
data type not supported for arithmetic.


Karstadt 25. Apr 2006 07:18

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Funktioniert das bei euch mit eueren SQL komponenten? Ich gehe jetz anders vor.. ist aber sehr langsam..

Delphi-Quellcode:
With Tabelle do
begin
  First;
  While not EOF do
  begin
    //Lese die gesamtzeit aus und addiere
    next;
  end;
end;
Am ende habe ich das raus was ich haben wollte. Aber nun habe ich 1000 DS... oh :(

mkinzler 25. Apr 2006 07:27

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Ich würde wie schon erwähnt Beginn/Ende notieren oder halt die Zeit in Minuten in die Tabelle schreiben. Dann funktioniert das Sum() auf Jedenfall.

Angel4585 25. Apr 2006 07:38

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
ich würde den Wert in Sekunden speichern und diese dann aufsummieren.

Daraus sollte sich relativ einfach die Gesamtdauer berechnen lassen oder nicht?

29000 wären dann 8h 20 Min.

Karstadt 25. Apr 2006 07:42

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Danke. Die Idee ist gut, werde dem entsprechend realisieren. Eine von meinen Fragen wurde aber nicht beantowrtet:


Funktioniert das bei euch mit ihren DB Komponenten die Zeit zu summieren oder ist das nur bei MYDAC (Komponente die ich benutze) so? :?:

Angel4585 25. Apr 2006 08:13

Re: Arbeitszeit eines Mitarbeiter ausrechen (100 Stunden 10
 
Das mit dem summieren hat ja denke ich nichts mit den Komponenten, sondern vielmehr mit der Datenbankversion zu tun.
Also bei mir funktioniert es und ich benutze die ZEOS Komponenten.(ZEOS kann ich übrigens nur empfehlen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz