Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Knifflige Abfrage: Statistiken (Quartal, Uhrzeit)

Empfohlene Antworten

Veröffentlicht

Hi Leute.

Brauch mal dringend eure Hilfe.

Ich muss eine Abfrage erstellen und weiss nicht weiter.

Folgendes:

Ich hab eine Tabelle die Anfragen speichert.

Ich muss jetz ausgeben wieviele Anfragen im ersten Quartal eingegangen sind.

Soweit sogut, aber das jetz auch noch mit Uhrzeit.

Ich hätte es gern so das die Ausgabe der View oder Abfrage die ich erstelle so aussieht:

Zeile1: Anfragen um 7.15 --> 30

Zeile2: Anfragen um 7.30 --> 15

Zeile3: Anfragen um 7.45 --> 12

usw bis 18 Uhr.

Bin grad knapp davor ne While schleife zu machen und die Uhrzeit dann hochzählen zu lassen:

SELECT COUNT(ID) FROM ANFRAGEN WHERE UHRZEIT LIKE ? AND Datum BETWEEN '2009-01-01' AND '2009-04-30';

Statt ? dann immer die Uhrzeit die ich in der While neu erstelle.

Aber das wären pro Quartal 44 abfragen....nicht das Gelbe vom Ei....

Könnt ihr mir evtl. helfen?

Danke schonmal,

Gruß AJ

dbms ?

wuerd in mysql in etwa so rangehn:


SELECT 

  date_format(Datum, '%h:%i' )as uhrzeit,

  COUNT(ID) 

FROM 

  ANFRAGEN 

WHERE 

  Datum BETWEEN '2009-01-01' AND '2009-04-30'

GROUP BY 

  uhrzeit

Ted

Danke für die schnelle Antwort!

Aber ich versteh leider nicht wofür diese Zeile da ist:

date_format(Datum, '%h:%i' )as uhrzeit,

Ich glaub ich müsste sie verstehen, da ich mit HSQL arbeite und die entsprechend umändern muss!

Danke!

Danke nochmal :)

Echt ne schwere Geburt, aber habs jetz fast, nur noch eine Frage.

Bei mir siehts grad so aus das er nur die Uhrzeiten und Anfragen ausgibt wo bereits eine Anfrage war. Sprich so:

16.30 --> 9

16:45 --> 1

17:00 --> 1

Ich brauch jedoch auch die Info das z.b. um 7:00 Uhr keine Anfrage kam...

Also ne ganze liste von 7 -18 Uhr....wie mach ich das am besten?

z.B.

7:00 --> 0

7:15 --> 1

usw

hm.. du koenntest dir ne hilfstabelle mit allen uhrzeiten die du brauchst anlegen, aber nen genauen tipp hab ich dafuer nicht - da ich sowas normalerweise ueber PhP loese

Ja, in purem SQL geht das so nicht um zu setzen, da er ja nur existierende Datensätze verarbeiten kann. Dazu müsstest Du über eine Referenztabelle oder Schleife gehen oder alternativ z.B. jede 15 Minuten prüfen, ob Anfragen vorliegen und dann einen Dummydatensatz reinschreiben, sofern keine da sind. Um den Dummy verarbeiten zu können, müsste Dein select dann aber wieder anders aussehen.

Ja, in purem SQL geht das so nicht um zu setzen, da er ja nur existierende Datensätze verarbeiten kann. Dazu müsstest Du über eine Referenztabelle oder Schleife gehen oder alternativ z.B. jede 15 Minuten prüfen, ob Anfragen vorliegen und dann einen Dummydatensatz reinschreiben, sofern keine da sind. Um den Dummy verarbeiten zu können, müsste Dein select dann aber wieder anders aussehen.

Unterstützt MySQL nicht den WITH - Konstrukt ? Dass wäre dann die Lösung für die "fehlenden" Zeiten

Hab mich nochmal schlau gemacht. Es scheint kein WITH bei MySQL zu geben, habe auch kein Pendant gefunden.

Allerdings gelernt, dass WITH als Zusatzfeature im SQL-Standard steht, aber bisher von den DB-System-Entwicklern sträflich vernachlässigt wird. Da gibts sogar ein With-Recursive.

Hab grad noch gesehen, dass es ja garnicht um MySQL, sondern HSQL geht^^

Hier könnte der CREATE SEQUENCE eventuell weiter helfen, ansonsten kämen eventuell noch über java oder innerhalb der selects berechnete Konvertierungen in Frage, z.B. Ansätze über:

- Datum in entsprechende Zahl (INT) konvertieren und hochzählen

- Uhrzeiten in Anzahl Minuten seit 0 Uhr umrechnen und durch Division in geeignete Segmente unterteilen, die dann in einer normalen (for-)Schleife (oder eben durch join mit der sequence oder einer 1-maligen Referenztabelle) abgearbeitet werden können.

Sollte generell einige Möglichkeiten geben, das auf einem einigermaßen praktikablen Weg zu umgehen.

macht ja nix, öffentliche foren sind ja nicht nur dazu da, dem Threadersteller zu helfen, habe selbst auch wieder neues dazugelernt und vielleicht helfen einige Ansätze noch anderen weiter.:)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.