Спасибо всем, после тяжелой работы и тестирования, я нашел решение и поделюсь им со всеми разработчиками Delphi:
function _sqlSelectSumBetweenDates(aQuery: TFDQuery; aTable: string; aSumField: string; aField: string; aDate1: string; aDate2: string): Real;
var d1, d2: string;
begin
d1 := _SQLiteDateFormat(StrToDate(aDate1));
d2 := _SQLiteDateFormat(StrToDate(aDate2));
try
aQuery.SQL.Clear();
aQuery.SQL.Text := 'SELECT SUM(' + aSumField + ') FROM ' + aTable + ' WHERE ' + aField + ' BETWEEN ' + QuotedStr(d1) + ' AND ' + QuotedStr(d2);
aQuery.Active := True;
Result := aQuery.Fields[0].AsFloat;
except
Result := 0;
end;
end;
function _SQLiteDateFormat(aDate: TDate): string;
begin
Result := FormatDateTime('YYYY-MM-DD', aDate);
end;
знаю, что вы можете вызвать функцию:
function _sqlSelectSumBetweenDates(aQuery: TFDQuery; aTable: string; aSumField: string; aField: string; aDate1: string; aDate2: string): Real;
и замените переменные вашими значениями.