![]() |
Datenbank: NexusDB • Zugriff über: ADO
NexusDB: mit dem Datum aus Datetime gruppieren
Vielleicht hat hier ja schon mal jemand mit NexusDB gearbeitet und kennt eine Lösung zu meinem Problem.
Ich habe in einer DB Störungen gespeichert mit Kommtzeit, Gehtzeit, Dauer und Störungsnummer. Jetzt möchte ich eine Abfrage, die mir für jeden Tag, die Dauer und Anzahl der Störungen liefert. Ich habe hier im Forum schon einiges zum entfernen des Zeitanteils aus Datetime gefunden, aber es klappt nicht so richtig. Derzeitiger Versuch:
Delphi-Quellcode:
bringt Fehler in der dritten Zeile nach dem "BY". "DATUM" kann ich hier allerdings auch nicht verwenden, da sagt er dann, dass es das Feld nicht kennt.
SQL.Add('SELECT CAST(FLOOR (CAST(K AS INT))AS DATETIME) AS DATUM, SUM(DAUER) AS GESAMT, COUNT(ID) AS ANZAHL FROM ALARM');
SQL.Add('WHERE K BETWEEN :PFROM AND :PTO'); SQL.Add('GROUP BY CAST(FLOOR (CAST(K AS INT))AS DATETIME)'); Params.ParamValues['PFROM'] := AFrom; Params.ParamValues['PTO'] := ATo; |
Re: NexusDB: mit dem Datum aus Datetime gruppieren
geht GROUP BY 1?
|
Re: NexusDB: mit dem Datum aus Datetime gruppieren
Zitat:
|
Re: NexusDB: mit dem Datum aus Datetime gruppieren
Da alle Versuche bisher fehlschlugen, habe ich auf Absolute Database umgestellt. Da kann ich bei "group by" auch die gecastete Spalte verwenden. Ich habe allerdings feststellen müssen, dass die Abfragen DEUTLICH langsamer ablaufen als bei NexusDB.
Das ist sehr schade, hat sonst jemand die Erfahrung gemacht, das Absolute Database langsam ist? |
Re: NexusDB: mit dem Datum aus Datetime gruppieren
Zitat:
Also ich benutze auch Absolute Database ein kleineren Projekten (Fotodokumentation in Arztpraxis). Hier macht es seinen Dienst hervorragend, allerdings habe ich auch nicht sehr viele Datensätze zu verwalten. Dennoch sprechen einige (hoffentlich nicht "gefakte") Datenbankvergleiche (goggle mal, evtl. findest Du was, darüber bin auch ich letztendlich bei ABSDB gelandet) für die gute Performance der Engine von ABSDB... SCRaT |
Re: NexusDB: mit dem Datum aus Datetime gruppieren
Hallo guidok,
evtl. hilft dir bei NEXUS (wenn Du noch zurück kannst :roll: ) eine temporäre Zwischentabelle (schau mal in der Hilfe #temp) in die du erst selektierst und castest. Danach dann ein Select und GROUP BY auf die temporäre Tabelle. Das geht bei NEXUS in einem SQL Statement und ist sehr performant. Hat bei uns bei einigen Abfragen auch nicht anders funktioniert bzw. hat den Speed deutlich verbessert. p.s. Ich kenne ADB nicht, aber NEXUS ist eigentlich perfekt !! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 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