![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
unknown Token DESC
Hallo alle ... 8-)
Wer hilft beim Brille putzen ? Ich will eine Ergebnismenge nochmal nach 2 Kriterien sortieren. SQL sinngemäß:
Delphi-Quellcode:
Sollte eigentlich simpel sein. Aber Fehler:
select * from (
. komplexes SQL mit UNION funtioniert seperat ohne Sortierung . ) order by Spalte1, Spalte2 desc Zitat:
Zitat:
Nachtrag: Der Knackpunkt muß wo anders liegen. Wenn ich Spalte2 desc weglasse bekomme ich einen anderen Fehler. Mal der Quelltext:
Delphi-Quellcode:
Klammern sind korrekt (soweit ich sehe)... Was kann es noch sein ?
QueryPayments.SQL.Text:= 'select * from (';
QueryPayments.SQL.Add('select PAYMENT_DATE, sum(PAYMENT),' + QuotedStr('dummy') + ' as CAPTION,'); QueryPayments.SQL.Add('ID_PAYMENT_TYPE from PAYMENTS where ID_PROCESS in (select ID_PROCESS from PROCESSES where ID_STORE = :IDS)'); QueryPayments.ParamByName('IDS').AsInteger:= Options.StoreID; if Options.TimeFrom > 0 then begin if (Options.FreeTime) or (not Options.SplitMonth) then begin QueryPayments.SQL.Add(' and PAYMENT_DATE between :FRO and :TO'); QueryPayments.SQL.Add(' group by PAYMENT_DATE, ID_PAYMENT_TYPE'); QueryPayments.SQL.Add(' ) order by PAYMENT_DATE, SUM desc'); QueryPayments.ParamByName('FRO').AsDate:= Options.TimeFrom; QueryPayments.ParamByName('TO').AsDate:= Options.TimeTo; QueryPayments.Open; SetCSVFileName(Options.TimeFrom,Options.TimeTo); WriteMemDataset; ExportToCSV(MemDataset,IncludeTrailingPathDelimiter(dm.dBK.Preferences.Common.CSVFolder) + FCSVFileName,';',True,True); end else . . |
AW: unknown Token DESC
Auf den ersten Blick scheint die Abfarge so korrekt zu sein. Was passiert, wenn du die Abfarge in einem Admintool absetzt?
|
AW: unknown Token DESC
Mangels adäquater Datenbank ist das natürlich nur schwer zu testen, aber versucht doch mal
Delphi-Quellcode:
statt einfach nur
SUM(Payment)
Delphi-Quellcode:
oder gib der Summenspalte einen Alias. Da sich das ORDER BY ja nicht direkt auf die SELECT-Anweisung mit dem Aggregat bezieht, könnte der SQL-Interpreter im äußeren SELECT mit dem Wort SUM Probleme bekommen.
SUM
|
AW: unknown Token DESC
Danke für die Anteilnahme 8-)
IBExpert:
Delphi-Quellcode:
...funktioniert -> Ergebnismengeselect PAYMENT_DATE, sum(PAYMENT), 'dummy' as CAPTION, ID_PAYMENT_TYPE from PAYMENTS where ID_PROCESS in (select ID_PROCESS from PROCESSES where ID_STORE = 2) group by PAYMENT_DATE, ID_PAYMENT_TYPE
Delphi-Quellcode:
Fehler: Token unknown - line 1, column 241.desc.
select * from(
select PAYMENT_DATE, sum(PAYMENT), 'dummy' as CAPTION, ID_PAYMENT_TYPE from PAYMENTS where ID_PROCESS in (select ID_PROCESS from PROCESSES where ID_STORE = 2) group by PAYMENT_DATE, ID_PAYMENT_TYPE ) order by PAYMENT_DATE, SUM desc ...wie zu sehen ist, ist da nur ein zusätzliches select drumherum... Zitat:
Delphi-Quellcode:
bekomme ich einen Kommandofehler:
...) order by PAYMENT_DATE
Invalid command. no column name specified for column number 2 in derived table <unnamed>. :gruebel: |
AW: unknown Token DESC
SUM ist ein reserviertes Wort
|
AW: unknown Token DESC
Gib allen Spalten einen Namen.
|
AW: unknown Token DESC
Na klar ! Solange die Ergebnismenge nur "ausgewertet" wird ist der Feldname SUM in der Ergebnismenge "erlaubt". Durch das zusätzliche select wird natürlich der Feldname intern verwendet und kollidiert mit dem reservierten Wort. Ein Alias hat das ganze aufgelöst.
Delphi-Quellcode:
Danke an alle :hi:select * from(select PAYMENT_DATE, sum(PAYMENT) as SUMPAYMENT, 'dummy' as CAPTION, ID_PAYMENT_TYPE from PAYMENTS where ID_PROCESS in (select ID_PROCESS from PROCESSES where ID_STORE = 2) group by PAYMENT_DATE, ID_PAYMENT_TYPE) order by PAYMENT_DATE, SUMPAYMENT desc |
AW: unknown Token DESC
Zitat:
|
AW: unknown Token DESC
Zitat:
In ORDER BY hast du aber SUM als Spaltenname angegeben und hier erwartet der Parser nun das zu summierende Feld in einer Klammer und kann kmit DESC deshalb nichts anfangen |
AW: unknown Token DESC
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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 by Thomas Breitkreuz