Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQLQuery Datensätze mit Bedingung zählen (https://www.delphipraxis.net/163555-sqlquery-datensaetze-mit-bedingung-zaehlen.html)

Nico93 4. Okt 2011 12:34

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:
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;
Wäre super wenn mir jemand weiterhelfen könnte.

p80286 4. Okt 2011 12:38

AW: SQLQuery Datensätze mit Bedingung zählen
 
Zitat:

Zitat von Nico93 (Beitrag 1128311)
Ich habe eine Datenbank, welche unter anderem eine Spalte Datum enthält.

Und welches Format hat sie?

Gruß
K-H

Nico93 4. Okt 2011 12:39

AW: SQLQuery Datensätze mit Bedingung zählen
 
Das Format der Spalte DATUM ist "Date"

FaTaLGuiLLoTiNe 4. Okt 2011 12:50

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.

Nico93 4. Okt 2011 12:56

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.

FaTaLGuiLLoTiNe 4. Okt 2011 12:59

AW: SQLQuery Datensätze mit Bedingung zählen
 
Anführungszeichen um die Datumsangaben machen. Oder, noch VIEL besser: Parameter verwenden.

//edit:

Delphi-Quellcode:
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;
Nur mal so, ungetestet.

mschaefer 4. Okt 2011 13:01

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

DeddyH 4. Okt 2011 13:04

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.

vagtler 4. Okt 2011 13:05

AW: SQLQuery Datensätze mit Bedingung zählen
 
Zitat:

Zitat von mschaefer (Beitrag 1128329)
Delphi-Quellcode:
SELECT * FROM Orders WHERE Orderdate >= '2009-05-09' AND Orderdate <'2012-04-15'

Was hast Du gegen BETWEEN?

p80286 4. Okt 2011 13:13

AW: SQLQuery Datensätze mit Bedingung zählen
 
Zitat:

Zitat von vagtler (Beitrag 1128333)
Zitat:

Zitat von mschaefer (Beitrag 1128329)
Delphi-Quellcode:
SELECT * FROM Orders WHERE Orderdate >= '2009-05-09' AND Orderdate <'2012-04-15'

Was hast Du gegen BETWEEN?

vermutlich garnichts?
aber es gibt SQL-Dialekte, die sich da etwas zickig anstellen.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
Seite 1 von 3  1 23   

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf