Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi GROUP BY: "Merkmal nicht verfügbar" (https://www.delphipraxis.net/20798-group-merkmal-nicht-verfuegbar.html)

daywalker-dj-k 23. Apr 2004 12:35


GROUP BY: "Merkmal nicht verfügbar"
 
hallo,
ich möchte einige datensätze gruppieren:

Delphi-Quellcode:
Query1.SQL.Add('SELECT auftragspositionen.LSNR, auftragspositionen.AUFNR FROM auftragspositionen GROUP BY auftragspositionen.LSNR, auftragspositionen.AUFNR HAVING auftragspositionen.AUFNR='''+strEditDatensatz+''';');
bei diesem quelltext erhalte ich immer die meldung "merkmal nicht verfügbar". wenn ich die sql-anweisung in access teste funktioniert sie aber. sobald ich das "having ..." weglasse funktioniert es auch.

jemand ne ahnung woran es liegen könnte?

danke
gruß
tkliewe

FBrust 23. Apr 2004 12:46

Re: GROUP BY: "Merkmal nicht verfügbar"
 
Hallo tkliewe,

da die HAVING-Klausel normalerweise nur mit Aggregatfunktionen benutzt wird (Count, Sum), sollte in Deinem Fall ein einfaches WHERE genügen. Versuchs mal damit.

Grüße
Frank

daywalker-dj-k 23. Apr 2004 12:57

Re: GROUP BY: "Merkmal nicht verfügbar"
 
danke vielmals ... hatte überall was von HAVING gelesen und dachte, dass man das WHERE dadurch ersetzten müsste.

Sharky 23. Apr 2004 13:16

Re: GROUP BY: "Merkmal nicht verfügbar"
 
Hai daywalker-dj-k,

hier noch ein Tip wie der Code besser zu lesen ist ;-)

Delphi-Quellcode:
begin
  Query1.Close;
  Query1.Clear;
  Query1.SQL.Add ('SELECT lsnr, aufnr FROM auftragspositionen');
  Query1.SQL.Add ('GROUP BY lsnr, aufnr');
  Query1.Sql.Add ('WHERE aufnr=:nummer');
  Query1.ParamByName ('nummer').AsString := str.EditDatensatz;
  Query1.Open;
end;

Robert_G 23. Apr 2004 13:30

Re: GROUP BY: "Merkmal nicht verfügbar"
 
Delphi-Quellcode:
With Query1 Do
Begin
  SQL.Text :=
    'SELECT t.LsNR' + #10 +
    '     ,t.AufNr' + #10 +
    'FROM  AuftragsPositionen t' + #10 +
    'WHERE t.AufNr = :i_AufNr' + #10 +
    'GROUP By t.LsNR' + #10 +
    '        ,t.AUFNR';
  // Parse Statement um Variablen zu erkennen
  Prepared := True;
  // Parameterzuweisung
  With Parameters Do
    ParamByName('i_AufNr').Value := strEditDatensatz;
  End;
End;
Wenn du dich mehr mit DBs befassen willst, solltest du dich nach einer Art IDE für deine DB umschauen. In meiner kann ich, mit einem selbst definiertem special copy, ohne Umwege aus einem SQL-Statement den Code da oben erzeugen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 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