![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: ibexpert
SQLQuery Datensätze mit Bedingung zählen
Hallo Zusammen,
ich bin noch Neuling und habe daher leider noch nicht so die Ahnung. Auch nach langem Suchen habe ich noch keine Lösung für mein Problem gefunden. Zum Problem: Ich habe eine Datenbank, welche unter anderem eine Spalte Datum enthält. Über ein SQLQuery möchte ich jetzt die Anzahl der Datensätze ermitteln, welche in einem bestimmten Zeitraum befinden. Dazu habe ich folgendes versucht, was mir jedoch immer die Fehlermeldung "Unknown Column xxxxxxxx at line xxxxxx" zurückgibt. Die Variablen "von" und "bis" werden durch ein DateTimePicker ermittelt und direkt in einen string umgewandelt.
Code:
Wäre super wenn mir jemand weiterhelfen könnte.
SQLQuery1.close;
SQLQuery1.SQL.Clear; SQLQuery1.SQL.ADD('SELECT COUNT (*) AS Z FROM AUSGABEN WHERE DATUM BETWEEN '+von+' and '+bis); SQLQuery1.EXECSQL; SQLQuery1.open; ausgaben := SQLQuery1.FieldByName ('Z').AsInteger; |
AW: SQLQuery Datensätze mit Bedingung zählen
Zitat:
Gruß K-H |
AW: SQLQuery Datensätze mit Bedingung zählen
Das Format der Spalte DATUM ist "Date"
|
AW: SQLQuery Datensätze mit Bedingung zählen
Wieso machst du erst ein ExecSQL und dann nochmal ein Open?
Ich kenne IBExpert zwar nicht, aber bei allen mir bekannten Query-Komponenten führt man Abfragen (SELECT) mit Open aus und Datenmanipulationen (INSERT, UPDATE) mit ExecSQL. Ersteres sollte in diesem Fall also reichen. |
AW: SQLQuery Datensätze mit Bedingung zählen
Liste der Anhänge anzeigen (Anzahl: 1)
habe ich gerade ausprobiert aber bringt leider immer noch nichts es kommt dauernd folgende Fehlermeldung, wie im Anhang zu sehen.
|
AW: SQLQuery Datensätze mit Bedingung zählen
Anführungszeichen um die Datumsangaben machen. Oder, noch VIEL besser: Parameter verwenden.
//edit:
Delphi-Quellcode:
Nur mal so, ungetestet.
SQLQuery.Close;
SQLQuery.SQL.Clear; SQLQuery.SQL.Add('SELECT COUNT (*) AS Z FROM Ausgaben WHERE Datum BETWEEN :von AND :bis'); SQLQuery.ParamByName('von').AsDate := Von; SQLQuery.ParamByName('bis').AsDate := Bis; SQLQuery.Open; |
AW: SQLQuery Datensätze mit Bedingung zählen
Delphi-Quellcode:
SELECT * FROM Orders WHERE Orderdate >= '2009-05-09' AND Orderdate <'2012-04-15'
Grüße in die Runde |
AW: SQLQuery Datensätze mit Bedingung zählen
BETWEEN muss eigentlich auch gehen, vermutlich waren von und bis nur nicht befüllt. Das würde zumindest die Fehlermeldung plausibel erklären.
|
AW: SQLQuery Datensätze mit Bedingung zählen
Zitat:
|
AW: SQLQuery Datensätze mit Bedingung zählen
Zitat:
aber es gibt SQL-Dialekte, die sich da etwas zickig anstellen. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 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