Hallo Zusammen,
ich habe ein Phänomen, dass ich mir nicht erklären kann... Ich baue meine
SQL-Statements mit HeidSQL zusammen und übertrage sie dann in meine Software. Das hat bislang auch immer gut geklappt.
Jetzt habe ich aber ein Statement, welches mir in HeidiSQL das richtige Ergebnis liefert, aber in meinem Programm ein anderes...
Hier das
SQL-Statement:
Delphi-Quellcode:
procedure TMxSQL.Get_StockMovements(KDArtikelNr, BDArtikelNr: string; var LStream: TMemoryStream);
var Logic: TLogic;
MsQuery: TFDQuery;
MsQryArtikelNr: TFDQuery;
begin
Logic := TLogic.create;
Logic.Set_Query(MsQuery, DB_Modul.MSConnect);
Logic.Set_Query(MsQryArtikelNr, DB_Modul.MSConnect);
Try
if KDArtikelNr <> '' then begin
MsQryArtikelNr.SQL.Add('select max(afg__ref) as afg__ref from afgart__ where zynrefkl = :KdArtikelNr');
MsQryArtikelNr.ParamByName('KdArtikelNr').AsString:= KDArtikelNr;
MsQryArtikelNr.Open;
BDArtikelNr:= MsQryArtikelNr.FieldByName('afg__ref').AsString
end;
MsQuery.SQL.Add('SELECT '+
'h.afg__ref AS BD_ArtikelNr, '+
'a.zynrefkl AS Kd_ArtikelNr, '+
'a.afg_oms1 AS Bezeichnung, '+
'max(h.kla__ref) AS Kd_Nummer, '+
'max(h.kla__rpn) AS Kd_Name, '+
'max(h.datum___) AS Bewegung, '+
'h.vak__ref AS Lagerort '+
'FROM hisafg__ h '+
'LEFT JOIN afgart__ a ON a.afg__ref = h.afg__ref '+
'WHERE h.afg__ref = :BDArtikelID '+
'GROUP BY '+
'h.afg__ref, '+
'a.zynrefkl, '+
'a.afg_oms1, '+
'h.vak__ref '+
'order by MAX(h.datum___) DESC ');
MsQuery.ParamByName('BDArtikelID').AsString:= BDArtikelNr;
MsQuery.Open;
if Assigned(LStream) then begin
LStream:= QryToStream(MsQuery);
end;
Finally
MsQuery.Free;
MsQryArtikelNr.Free;
Logic.Free;
End;
end;
Die beiden Ergebnisse und das HeidiSQL-Statement hänge ich als Bilder an. Bei Result_HeidiSQL bekomme ich richtiger Weise unterschiedliche Bewegungsdaten mit den unterschiedlichen Lagerorten. Bei Result_TFDQuery sind die Bewegungsdaten und Lagerorte identisch, nämlich wie die älteste Bewegung.
Die Tatsache, dass das Ergebnis unterschiedlich ist, verunsichert mich...
Kann mir jemand da etwas zu sagen?
Vielen Dank
Patrick