Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Komplizierte abfrage mit group by und distinct (https://www.delphipraxis.net/87926-komplizierte-abfrage-mit-group-und-distinct.html)

Quake 7. Mär 2007 13:58

Datenbank: Firebird • Version: 1.5 • Zugriff über: Delphi

Komplizierte abfrage mit group by und distinct
 
Hallo,

einige Fragen wurden mir hier im Forum schon beantwortet, aber es sind noch einige offen geblieben.
Wie ist also die Situation ... Ich habe eine Tabelle von einem Eintrittssystem. Ich muss nun aus dieser Tabelle ein Aufschlüsselung heraus bekommen, die mir die Anzahl der Eintritte für jede Stunde ausgibt. Dies habe ich auch schon gelöst :

SQL-Code:
select extract(hour from ZEIT), count(*) from EINTRITTE group by extract(hour from ZEIT);
Nun soll dies aber noch erweitert werden. In der Tabelle gibt es noch eine Spalte mit der Eintrittsticketnummer. Da eine Person mehrfach mit ein und dem selben Ticket Eintretten kann würde die Person mehrfach gezählt. Wie kann ich das mehrfach zählen verhindern und das ohne zusätzlichen View. Ich hatte mir sowas in der Art wie folgenen Code vorgestellt, der natürlich nicht funktioniert :

SQL-Code:
select extract(hour from ZEIT), count(*) from (select distinct TICKETNUMMER,* from EINTRITTE) group by extract(hour from ZEIT);
Ist das überhaupt möglich was ich da vorhabe und wenn ja, wie?

MfG
Martin

mkinzler 7. Mär 2007 14:12

Re: Komplizierte abfrage mit group by und distinct
 
Mit FB2 könntest du einen Derived Tabel verwenden.
SQL-Code:
select hour, count(*) from (select distinct TICKETNUMMER, extract(hour from ZEIT) as hour from EINTRITTE) group by hour;

Quake 7. Mär 2007 14:31

Re: Komplizierte abfrage mit group by und distinct
 
Ja das sieht so aus wie ich es haben möchte, aber im Moment habe ich nur FB1.5 zur Verfügung.

marabu 7. Mär 2007 16:47

Re: Komplizierte abfrage mit group by und distinct
 
Hallo Martin,

versuche es mal so:

SQL-Code:
SELECT EXTRACT(hour FROM zeit) AS stunde, COUNT(DISTINCT ticketnummer)
FROM eintritte
GROUP BY 1 
ORDER BY 1
Freundliche Grüße

Quake 8. Mär 2007 09:59

Re: Komplizierte abfrage mit group by und distinct
 
Das sah auf den ersten Blick vielversprechend aus, aber da kam was anderes heraus als erwartet. Ich schau nochmal in Ruhe warum.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.

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