![]() |
|
|
|
|
#1
|
|||
|
|||
|
Здравствуйте! Очень нужна помощь.
Нужно подсчитать сумму доходов за определенный период времени. Пытаюсь сделать ниже приведенным образом, но выдает ноль ) видимо, не без всяких оснований. Код:
try
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add('SELECT SUM(summa) AS D FROM Dohod WHERE data BETWEEN :first_date AND :last_date');
DM.ADOQuery1.Parameters.ParamByName('first_date').Value := DateTimePicker1.Date;
DM.ADOQuery1.Parameters.ParamByName('last_date').Value := DateTimePicker2.Date;
DM.ADOQuery1.Active:=True;
except
on e:Exception do
end;Последний раз редактировалось Chinvad, 11.03.2013 в 14:07. |
|
#2
|
||||
|
||||
|
а без sum выборка какие-то данные возвращает?
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Chinvad (09.03.2013)
| ||
|
#3
|
|||
|
|||
|
Спасибо, что навели на верную мысль ) Обещаю впредь использовать тег code.
|
|
#4
|
||||
|
||||
|
Дак че там с выборкой то?
|
|
#5
|
|||
|
|||
|
Исправила проблему с DateTime в DateTimePicker и просто Date у меня в базе, но нет ) вопрос остается актуальным! Запрос работает в виде суммы без выборки:
Код:
try
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add('SELECT SUM(summa) AS D FROM Dohod');
DM.ADOQuery1.Active:=True;
except
on e:Exception do
end;
Dohod:=DM.ADOQuery1.FieldByName('D').AsFloat;и так же работает в виде простой выборки из таблицы по датам: Код:
try
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add('SELECT * FROM Dohod WHERE data BETWEEN :first_date AND :last_date');
DM.ADOQuery1.Parameters.ParamByName('first_date').Value := StrToDateTime(DateToStr(DateTimePicker1.Date));
DM.ADOQuery1.Parameters.ParamByName('last_date').Value := StrToDateTime(DateToStr(DateTimePicker2.Date));
DM.ADOQuery1.Active:=True;
except
on e:Exception do
end;Но! не работает в первоначальном виде. Ошибка? Как вообще с помощью запроса посчитать сумму за период времени? |
|
#6
|
||||
|
||||
|
Сделай из таблицы "Прибул" выборку, сдается мне там данных просто нет.
Условия вообще выкинь. |