Hallo,
Danke an alle.
So läuft es jetzt.
procedure TModul.Berechnung;
var i, Jahr : Integer;
Kontonummer : String;
begin
// Gesamt Vorjahr
BuchungenQry.Close;
BuchungenQry.SQL.Clear;
Kontonummer := EmptyStr;
for i := 0 to dmMain.Memo1.Lines.Count - 1 do
begin
Kontonummer := Kontonummer + '''' + dmMain.Memo1.Lines[i] + '''' + ',';
end;
Kontonummer := Copy(Kontonummer, 0, Length(Kontonummer) - 1);
BuchungenQry.SQL.Add('SELECT SUM(B.Soll) as SollBetrag, SUM(B.Haben) as HabenBetrag ');
BuchungenQry.SQL.Add('FROM Konto K INNER JOIN ');
BuchungenQry.SQL.Add('Buchung B ON B.DVKontonummer = K.DVKontonummer INNER JOIN ');
BuchungenQry.SQL.Add('Beleg BL ON BL.DVBelegnummer = B.DVBelegnummer ');
BuchungenQry.SQL.Add('WHERE (BL.Buchungsperiode Between :Anfang and :Ende) ');
BuchungenQry.SQL.Add(Format('and BL.Belegart in (%s, %s)',[QuotedStr('ER'),QuotedStr('EG')]));
BuchungenQry.SQL.Add(Format('and K.Kontonummer in (%s) ',[Kontonummer]));
BuchungenQry.SQL.Add(Format('and B.InfoGegenkonto in (%s, %s)',[QuotedStr('3425'),QuotedStr('3410')]));
Jahr := StrToINT(dmMain.cbxJahr.Text);
BuchungenQry.Parameters.ParamByName('Anfang').Valu e := '01-01' + '-' + IntToStr(Jahr - 1);
BuchungenQry.Parameters.ParamByName('Ende').Value := '31-12' + '-' + IntToStr(Jahr - 1);
BuchungenQry.Open;
end;