![]() |
Datenbank: Interbase • Version: 6 • Zugriff über: DBX
SQL-Abfrage Interbase 6.0
Liebes Forum,
ich traue mich schon garnichtmehr zu fragen, ich habe ein Verständnisproblem: Die Abfrage: SELECT art_num, art_grp, werkzg_nr from WZG_HIST where (werkzg_nr>0) and (intervall>0) group by werkzg_nr; bringt den Fehler: Invalid token. Dynamic SQL Error. SQL error code = -104. invalid column reference. Was invalid column reference ist ist mir klar, aber diese Spalten sind vorhanden!! Die Felder werkzg_nr und intervall sind vom Typ DOUBLE PRECISION. Ich kapier es einfach nicht. |
AW: SQL-Abfrage Interbase 6.0
Ich verstehe Deine angedachte Gruppierung nicht. Interbase scheint das genauso zu gehen. Wie soll das Ergebnis denn beispielhaft aussehen?
|
AW: SQL-Abfrage Interbase 6.0
Hallo DeddyH
ich wollte anzeigen: für jedes Aufkommen einer werkzg_nr die Summe der Intervalle. Die Abfrage sieht jetzt so aus, funktioniert genauso wenig, mit der gleichen Meldung: SELECT art_num, art_grp, werkzg_nr, sum(intervall) from WZG_HIST where (werkzg_nr>0) and (intervall>0) group by werkzg_nr; |
AW: SQL-Abfrage Interbase 6.0
Du musst auch alle Nicht-Aggregatfelder in die Gruppierung aufnehmen.
SQL-Code:
SELECT
art_num, art_grp, werkzg_nr, SUM(intervall) FROM WZG_HIST WHERE werkzg_nr > 0 AND intervall > 0 GROUP BY art_num, art_grp, werkzg_nr; |
AW: SQL-Abfrage Interbase 6.0
Delphi-Quellcode:
Vielen Dank, Deine Abfrage funktionierte im IBExpert.
var sql :String;
begin with Datamodul.DataModule1 do begin if SQLDSWHis.active= True then SQLDSWHis.active:=False; if CDSWHis.active=True then CDSWHis.active:=False; msql:=SQLDSWHis.CommandText; //Aktive Abfrage merken sql:='SELECT WERKZG_NR, ART_NUM, sum(INTERVALL) FROM WZG_HIST WHERE (WERKZG_NR > 0) AND (INTERVALL > 0) ORDER BY ART_NUM group by art_num, werkzg_nr;'; SQLDSWHis.CommandText:=sql; CDSWHis.active:=True; SQLDSWHis.active:=True; showmessage(intToStr(CDSWHis.RecordCount)); end; Im Programmcode bringt er aber jetzt : SQL-Server Fehler Token unknown line1, char 117 group Wieso kennt er group nicht? Oder geht das nicht... |
AW: SQL-Abfrage Interbase 6.0
ORDER BY kommt nach GROUP BY
|
AW: SQL-Abfrage Interbase 6.0
Keine Ahnung, für mich sieht die Abfrage in Ordnung aus.
[edit] Na klar, falsche Reihenfolge. [/edit] |
AW: SQL-Abfrage Interbase 6.0
und dies ist auch etwas besser:
Delphi-Quellcode:
Und muß das Semikolon am Ende sein?
if SQLDSWHis.active then SQLDSWHis.active:=False;
if CDSWHis.active then CDSWHis.active:=False; gruß K-H |
AW: SQL-Abfrage Interbase 6.0
und zwischen group by... und order by... noch ein Komma.
/Edit/ nehme alles zurück - war abgelenkt und hab nicht richtig hingesehen. DeddyH hat recht. Ist blödsinn von mir /Edit/ |
AW: SQL-Abfrage Interbase 6.0
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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