![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: IBX
Gruppieren von Datensätzen nach einer Bezeichnung und Datum
Sorry, wenn meine Frage nix mit Delphi zu tun hat, sondern nur mit SQL.
Ich habe eine Tabelle mit Produktionseinträgen einer Maschine, immer ein Datensatz mit Produkttyp(oder Bezeichnung) und Uhrzeit. Meine Berichte geben bis jetzt entweder die einzelnen Einträge wieder, oder eine Aufsummierung für einen bestimmten Zeitraum, also Typ A 50 Stück, Typ B 55 Stück ... Ein Kunde wünscht jetzt eine Gruppierung nach Typ und Zeit. Er produziert z.B. 50 Stück A, dann 30 Stück B, dann wieder 5 Typ A. Dann hätte er gerne eine Liste, die genau dies in der Reihenfolge aufsummiert wiedergibt. Mein Bericht sagt ihm nur in der Summe 55 Stück A, 30 B. Gibt es dazu eine elegante SQL-Abfrage, oder müsste ich mir da die Datensätze alle selbst zusammenrechnen? Leider finde ich auch keine passenden Stichworte, um selbst nach einer Lösung zu googeln, daher frage ich hier einfach mal Gruß Rainer |
Re: Gruppieren von Datensätzen nach einer Bezeichnung und Da
Sry, ich hab die Frage auch nach 3-maligem Lesen noch nicht ganz verstanden. Evtl. kannst Du mal ein paar Beispieldatensätze sowie das gewünschte Abfrageergebnis posten?
|
Re: Gruppieren von Datensätzen nach einer Bezeichnung und Da
Du meinst immer Anzahl Stück A bis sich der Typ ändert?
|
Re: Gruppieren von Datensätzen nach einer Bezeichnung und Da
genau das, was mkinzler meint.
Eine Beispieltabelle: 14:00 Typ A 14:01 Typ A 14:02 Typ B 14:03 Typ B 14:04 Typ A Dann sollte die Ergebnistabelle so aussehen: 1. Typ A 2 Stück 2. Typ B 2 Stück 3. Typ A 1 Stück |
Re: Gruppieren von Datensätzen nach einer Bezeichnung und Da
Da wirst du nicht um eine SP herumkommen. In der du die DS manuell durchgehst und auf Änderung des Typs prüfst
|
Re: Gruppieren von Datensätzen nach einer Bezeichnung und Da
Vielleicht so...
SQL-Code:
SELECT typ, COUNT(*) anzahl
FROM (SELECT a.uhrzeit, a.typ, MIN(b.uhrzeit) typ_group FROM fertigung a LEFT JOIN fertigung b ON a.uhrzeit < b.uhrzeit AND a.typ <> b.typ GROUP BY a.uhrzeit, a.typ) x GROUP BY typ_group, typ ORDER BY CASE WHEN typ_group IS NULL THEN 1 ELSE 0 END, typ_group, typ |
Re: Gruppieren von Datensätzen nach einer Bezeichnung und Da
Ich stehe ehrfürchtig da und staune.
Die Abfrage funktioniert! Jetzt muss ich blos irgendwann mal noch selbst kapieren, wie die Abfrage funktioniert. Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz