Entwickler-Ecke
Datenbanken - Daten gruppieren!
Wuschl - Di 12.11.02 10:31
Titel: Daten gruppieren!
Hallo erstmal!
Ich hab da mal wieder ein kleines ( :wink: ) Problem mit ner Datenbank bzw. mit Quickreport! Und zwar hab ich eine Tabelle in der User gespeichert sind mit Login- und Logoutzeit für eine Anwendung.
Jetzt möchte ich mit Quickreport eine Statistik ausdrucken die ungefähr dann so aussehen soll
Username Loginzeit Logoutzeit Dauer(s)
-------------------------------------------------
Hans 11.11.02 11.11.02 60
-------------------------------------------------
Peter 06.11.02 06.11.02 120
-------------------------------------------------
Dauergesammt: 180
Die Uhrzeit ist natürlich auch noch inbegriffen! Ok hoffe ihr könnt mir da
helfen, es gibt ja ne SQL anweisung "group by" oder so aber ich hab da nicht so den durchblick ;-)
Gruß
Wuschl
Wuschl - Di 12.11.02 10:34
Achja hätte ich fast vergessen jede login und logoutzeit ist in der tabelle einzeln aufgelistet und soll beim audruck aber eben zusammengefasst werden, war vielleicht etwas unklar!
Gruß
Wuschl
LCS - Di 12.11.02 13:15
Hi
Im Prinzip könnte das so funktionieren:
Quelltext
1:
| Select Username, sum(logoutzeit - loginzeit) from Tabelle group by Username |
Damit bekommst du die aufsummierten Zeiten für jeden einzelnen User zusammengefasst. Das Problem ist nur die Summierung der Datum/Zeitdaten. Wenn du das mit einer Paradoxtabelle und DateTime Feldern machst, klappts. Bei anderen Datenbank könnte es eventuell Probleme geben.
Gruss Lothar
Wuschl - Di 12.11.02 14:19
Ok den code hab ich jetzt etwas anderst! Wenn ich den Befehl direkt an die Tabelle übergeben funktionierts nur in Delphi hab ich da noch ein paar Probleme!
Ich hab ca. so:
Quelltext
1:
| SELECT Nickname AS nick FROM Tabelle where (Loginzeit BETWEEN :Loginzeit AND :Loginzeit2) group by Nickname |
Dem Quickreport übergebe ich dann beim Form.Create die temporäre Spalte also "nick" so (natürlich erst nachdem der query geöffnet wurde);
Quelltext
1:
| QRDBtext1.DataField := Nicksortquery.fieldbyname('nick').AsString; |
Allerdings bekomme ich im query nix angezeigt, ich hab keine ahnung wieso!
Gruß
Wuschl
Wuschl - Di 12.11.02 14:20
Sorry natürlich meinte ich ich bekommen ichts in der druckvorschau vom quickreport angezeigt :roll:
LCS - Di 12.11.02 14:24
Hi
Wenn du damit jetzt die Druckvorschau zur Entwurfszeit meinst, ist das logisch. Warum ordnest du das Feld Nick nicht gleich zu?
Gruss Lothar
Wuschl - Di 12.11.02 14:33
Geht das auch etwas genauer? :roll:
Wenns so logisch wär wär ich wohl schon selber drauf gekommen ;)
Gruß
Wuschl
LCS - Di 12.11.02 14:48
Sorry, aber scheint so, dass du tatsächlich die Druckvorschau zur Entwurfszeit meinst. Wie soll er die denn darstellen, wenn du das Feld erst zur Laufzeit in deinem Programm zuordnest? :wink: Deswegen war ja auch meine Frage warum du das nicht gleich zuordnest.
Gruss Lothar
Wuschl - Di 12.11.02 14:52
Ja klar aber die nachdem der sql text ausgeführt wurde ist die spalte bzw das feld ja erstellt und danach ordne ich es ja erst zu also müsste es doch funktionieren?? Ansonsten müsste ich ja in die tabelle eine extra spalte einfügen in die ich die gefilterten ergebnisse schreibe, so habe ich sie nur temporär. Verbessere mich wenn ich total falsch liege :roll:
Gruß
Wuschl
LCS - Di 12.11.02 15:15
Damit die die Druckvorschau nutzen kannst, muss das Feld eben schon zur Entwurfszeit zugeordnet sein. In DataField von deinem QDBText muss also Nick stehen.
Ach so, nochwas (hab ich jetzt erst richtig gelesen :oops:)
| Zitat: |
Quelltext 1:
| QRDBtext1.DataField := Nicksortquery.fieldbyname('nick').AsString; | |
Das funktioniert nicht. Damit würdest du der Eigenschaft DataField den Inhalt des Feldes zuweisen. Du musst hier aber das Feld selbst zuweisen:
Quelltext
1:
| QRDBtext1.DataField := Nicksortquery.fieldbyname('nick').Fieldname; |
oder einfacher
Quelltext
1:
| QRDBtext1.DataField := 'Nick'; |
Gruss Lothar
Wuschl - Di 12.11.02 15:35
Ok ich hab jetzt den SQL Code zur Entwurfszeit erstellt und die Spalte (also 'nick') dem QRDBtext zugewiesen. Allerdings hab ich immernoch kein ergebnis, ziemlich seltsam. Trotzdem danke für Deine Hilfe, werds schon noch irgendwie hinbekommen!
mfg
Wuschl
LCS - Di 12.11.02 15:40
Dann sollte es funktionieren, wenn du die Query aktivi setzt.
Gruss Lothar
Wuschl - Di 12.11.02 16:28
Geht leider nicht, dann liegt das problem wohl irgendwo anderst!
Trotzdem danke
gruß
Wuschl
Wuschl - Mi 13.11.02 16:57
Jetzt funktioniert es, das problem war ich hatte noch ein weiteres temporäres feld erstellt aber hatte es zum testen noch nicht verwendet! Darin lag das Problem, anscheinend hat delphi ein problem mit so einem nicht verwendeten feld, denn sobald ich es im Quickreport mit drin hatte funktionierte es!
mfg
Wuschl
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!