Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi NexusDB: mit dem Datum aus Datetime gruppieren (https://www.delphipraxis.net/104876-nexusdb-mit-dem-datum-aus-datetime-gruppieren.html)

guidok 12. Dez 2007 08:22

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:
    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;
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.

joachimd 12. Dez 2007 10:09

Re: NexusDB: mit dem Datum aus Datetime gruppieren
 
geht GROUP BY 1?

guidok 12. Dez 2007 10:15

Re: NexusDB: mit dem Datum aus Datetime gruppieren
 
Zitat:

Zitat von joachimd
geht GROUP BY 1?

Gerade getestet, leider nein.

guidok 12. Dez 2007 14:30

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?

scrat1979 12. Dez 2007 15:49

Re: NexusDB: mit dem Datum aus Datetime gruppieren
 
Zitat:

Zitat von guidok
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?

Hallo!!

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

ConstantGardener 12. Dez 2007 16:01

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