| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Benutzer Registriert seit: 19.03.2009
Beiträge: 32
![]() | Ich habe in meinem ersten Beitrag völligen Blödsinn geschrieben. So passierts eben, wenn man rumdöst - also nochmal. Ich habe folgende Tabellen: Tabelle USER ------------ UserID | UserName Tabelle USERLOG --------------- UserlogID | UserlogDate | UserlogStartTime | FK_User_ID | UserlogArt In der Tabelle Userlog werden die Anmeldezeit und die Abmeldezeit gespeichert. Jede Anmeldung und jede Abmeldung ist ein eigener Userlog für sich, es wird immer nur die Zeit des Userlogs gespeichert. Also z.B.: 1 | 2011-09-06 | 12:00:00 | 4 | Anmeldung 2 | 2011-09-06 | 12:30:00 | 4 | Abmeldung 3 | 2011-09-06 | 13:00:00 | 1 | Anmeldung 4 | 2011-09-06 | 13:10:00 | 1 | Abmeldung 5 | 2011-09-06 | 14:00:00 | 4 | Anmeldung 6 | 2011-09-06 | 14:30:00 | 4 | Abmeldung ... Jetzt kommt meine dritte Tabelle ins Spiel: Tabelle AKTION -------------- AktionID | AktionDate | AktionStartTime | AktionWert 1 | 2011-09-06 | 12:05:12 | 1200 2 | 2011-09-06 | 12:13:44 | 3000 3 | 2011-09-06 | 13:04:18 | 1444 4 | 2011-09-06 | 14:15:22 | 400 ... Ich möchte nun gerne eine Monatsabrechnung erstellen. Man gibt also einen Usernamen, einen Monat und das Jahr ein. Anhand der Zeiträume der Tabelle USERLOG sollen nun die Aktionen ermittelt werden, die in die Zeiträume für die jeweilige UserID zwischen An- und Abmeldung fallen. Die Werte in AktionWert sollen addiert werden. Beispiel: --------- User 4 bekommt die AktionsWerte 4600, User1 bekommt 1444 zugewiesen. Wie erstelle ich nun die Abfrage? Ich muss doch erstmal prüfen in welchen Zeiträumen User 4 angemeldet war und dann die zugehörigen Aktionen selektieren, die in diese Zeiträume fallen. Dazu muss ich ja die einzelnen Zeiträume zwischenspeichern. Wie geht man dabei am Besten vor? Es wäre echt gut wenn ihr mir TIPPs dazu geben könntet. Ich hoffe, dass meine Beschreibung verständlich ist. MfG watchdogg |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Hi. Entweder ist deine BEschreibung fehlerhaft, oder ich sehe den Wald vor lauter Bäume nicht, aber Zitat:
mfg Wolf29
__________________ while (!asleep()) sheep++; Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen. | |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() | Trenne Datum und Uhrzeit NICHT voneinander, sondern benutz DATETIME. Es macht das Rechnen mit Zeiten wesentlich einfacher, vor allem wenn An- und Abmeldung über eine Tagesgrenze hinweggehen. Zitat:
Zitat:
Die Bedingungen für die zweite Query werden aus den Daten der ersten Query (Bestimmung der Zeiträume für den User) zusammenschustern und mit OR verknüpfen: Code: SELECT SUM(AktionWert) FROM Aktion WHERE AktionsDatum BETWEEN Zeitraum1.Start AND Zeitraum1.Ende OR AktionsDatum BETWEEN Zeitraum2.Start AND Zeitraum2.Ende ...
__________________ Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot. | ||
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() | Zitat:
1 | 2011-09-06 | 12:00:00 | 4 | Anmeldung 2 | 2011-09-06 | 12:30:00 | 4 | Abmeldung 5 | 2011-09-06 | 14:00:00 | 4 | Anmeldung 6 | 2011-09-06 | 14:30:00 | 4 | Abmeldung User 4 war angemeldet am 06.09.2011 zwischen 12:00-12:30 und zwischen 14:00-14:30 Folgende Aktionen waren in den beiden Zeiträumen "aktiv": 1 | 2011-09-06 | 12:05:12 | 1200 2 | 2011-09-06 | 12:13:44 | 3000 4 | 2011-09-06 | 14:15:22 | 400 Die Punkte zusammengezählt: 4600 edit: Betrachtungszeitrum ist der 06.09.2011 (von 0 bis 23:59Uhr)
__________________ Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot. | |
| | |
| | |
| Erfahrener Benutzer | Spar dir die 2 Spalten für Datum und Zeit und nutze eine die einen Timestamp ( Unix oder DateTime ) speichert. Code: SELECT a, b, c, timestamp FROM world WHERE timestamp BETWEEN CAST('2011-01-01' AS DATE) AND CAST('2011-01-01' AS DATE);
__________________ |
| | |
| | |
| Benutzer Registriert seit: 19.03.2009
Beiträge: 32
![]() | Vielen Dank für eure Antworten. Wie gesagt die Spalten mit Datum und Zeit sind vorgegeben, ich kann die nicht einfach ändern. Kann man die Spalten Datum und Zeit nicht irgendwie bei einer Abfrage in ein DATETIME Format casten? MfG watchdogg |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| (S) All-In-One Tool für Freiberufler (Rechnung, Zeiterfassung und Kundenverwaltung) | nicbec | Off-Topic Diskussionen | 12 | 31.08.2011 17:06 |
| Fehler bei Auswertung eines Formulars | bidu2004 | PHP Tipps 2010 | 10 | 25.04.2010 21:17 |
| Formular und Auswertung in einem php-Dokument | Paeisi | PHP Tipps 2009 | 17 | 28.11.2009 15:07 |
| Scriptsuche Persönlichkeitstest mit Auswertung in PHP | Dicke-Freunde | Scriptbörse | 2 | 20.08.2009 19:46 |
| Auswertung erstellen | rezix | PHP Tipps 2008 | 5 | 15.02.2008 17:58 |
| Auswertung von Veranstaltungstabelle | maeck | PHP Tipps 2006 | 10 | 01.11.2006 23:39 |
| [Erledigt] Auswertung von Funktionen innerhalb von Strings | PHP Tipps 2006 | 5 | 30.01.2006 14:03 | |
| Auswertung einer Pulldownmenus | PHP Tipps 2005-2 | 2 | 23.10.2005 12:47 | |
| Auswertung | Server, Hosting und Workstations | 4 | 23.07.2005 15:11 | |
| Auswertung von Multiple Select-Listen | PHP Tipps 2005-2 | 4 | 11.07.2005 17:52 | |
| [Erledigt] Auswertung und Uebertragung von Werten in Links | PHP Tipps 2005-2 | 0 | 15.06.2005 12:12 | |
| [Erledigt] Auswertung von Mehrfachauswahllisten | Datenbanken | 25 | 26.05.2005 15:12 | |
| Auswertung mit globalen Variablen | duerov | PHP Tipps 2004 | 4 | 07.09.2004 14:23 |
| checkbox auswertung | PHP Tipps 2004 | 1 | 31.08.2004 21:08 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php zeiterfassung, arbeitszeiterfassung php, zeiterfassung php, php arbeitszeiterfassung, php mysql zeiterfassung, auswertung zeiterfassung, zeiterfassung php script, tabelle zeiterfassung, php script zeiterfassung, zeiterfassung auswertung, zeiterfassung php mysql, zeiterfassung mit sql datenbank aufbau tabellen, mysql zeiterfassung, datenbank für zeiterfassung, php monatliche auswertung, zeiterfassung per php, php mysql stempeluhr, php zeitabrechnung, php stempeluhr datumsfunktion, auswertung der zeiterfassung |