Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
Delphi 10.4 Sydney
|
AW: MySQL versus MsSQL Syntax Group By
12. Mai 2021, 16:59
Aktuell verzweifle ich gerade. Eigentlich eine Sache von ein paar Minuten und sitze jetzt schon Stunden da dran...
Delphi-Quellcode:
SELECT a.zynrefkl AS 'Artikelnummer',
a.afg_oms1 AS 'Artikelbezeichnung 1',
b.in__vrrd AS 'Bestand',
a.per__chk AS 'Abgreifmenge',
a.minstock AS 'Mindestbestand',
CASE WHEN b.in__vrrd<a.minstock then 'Mindestmenge unterschritten' ELSE '' END AS 'Bestandskommentar',
'' AS Kommentar,
COALESCE(SUM(c.b_aantal),0) AS 'Rückstand',
COALESCE(SUM(d.aant_uit), 0) AS 'Gesamtverbrauch'
FROM afgart__ a
LEFT JOIN afgant__ b ON b.afg__ref = a.afg__ref
LEFT JOIN bstlyn__ c ON c.afg__ref = a.afg__ref AND c.vrzvouur<GETDATE() AND c.vrz__tst = '1'
LEFT JOIN hisafg__ d ON d.afg__ref = a.afg__ref AND MONTH(d.datum___) = MONTH(GETDATE())
WHERE a.kla__rpn = 'LBBW'
AND a.zynrefkl <> ''
GROUP BY a.zynrefkl,
a.afg_oms1,
b.in__vrrd,
a.per__chk,
a.minstock
Das oben gepostete SQL-Statement funktioniert jetzt, wenn ich es mit HeidSQL ausführe. Ich bekomme 229 Datensätze angezeigt.
Wenn ich das Statement jetzt aber über meine Software absetze, bekomme ich nur 50 Datensätze raus...
Delphi-Quellcode:
procedure TDB_Modul.Get_WeeklyStock(AStream: TStream);
var Logic: TLogic;
Query: TFDQuery;
begin
Logic := TLogic.create;
Logic.Set_Query( Query, MSConnect);
Try
Query.SQL.Add(' SELECT a.zynrefkl AS ' + QuotedStr(' Artikelnummer') + ' , '+
' a.afg_oms1 AS ' + QuotedStr(' Artikelbezeichnung 1') + ' , '+
' b.in__vrrd AS ' + QuotedStr(' Bestand') + ' , '+
' a.per__chk AS ' + QuotedStr(' Abgreifmenge') + ' , '+
' a.minstock AS ' + QuotedStr(' Mindestbestand') + ' , '+
' CASE WHEN b.in__vrrd<a.minstock then '+QuotedStr(' Mindestmenge_unterschritten') + ' ELSE '+QuotedStr(' ') + ' END AS '+QuotedStr(' Bestandskommentar') + ' , '+
QuotedStr(' ') + ' AS '+ QuotedStr(' Kommentar') + ' , '+
' COALESCE(SUM(c.b_aantal),0) AS ' + QuotedStr(' Rückstand') + ' , '+
' COALESCE(SUM(d.aant_uit), 0) AS ' + QuotedStr(' Gesamtverbrauch') + ' '+
' FROM afgart__ a '+
' LEFT JOIN afgant__ b ON b.afg__ref = a.afg__ref '+
' LEFT JOIN bstlyn__ c ON c.afg__ref = a.afg__ref AND c.vrzvouur<GETDATE() AND c.vrz__tst = '+QuotedStr(' 1') + ' '+
' LEFT JOIN hisafg__ d ON d.afg__ref = a.afg__ref AND MONTH(d.datum___) = MONTH(GETDATE()) '+
' WHERE a.kla__rpn = ' + QuotedStr(' LBBW') + ' '+
' AND a.zynrefkl <> ' + QuotedStr(' ') + ' '+
' GROUP BY a.zynrefkl, a.afg_oms1, b.in__vrrd, a.per__chk, a.minstock ');
Query.Open;
if Assigned(AStream) then begin
Query.SaveToStream(AStream, sfJSON);
end;
Finally
Query.Free;
Logic.Free;
End;
end;
Es sind die ersten 50 Datensätze. Aber ich habe doch gar keine Limitierung eingestellt. Sieht jemand, woran das liegen könnte?
Vielen Dank
Patrick
Patrick
|
|
Zitat
|