![]() |
|
#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 выборка какие-то данные возвращает?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Chinvad (09.03.2013)
|
#3
|
|||
|
|||
![]() Спасибо, что навели на верную мысль ) Обещаю впредь использовать тег code.
|
#4
|
||||
|
||||
![]() Дак че там с выборкой то?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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
|
||||
|
||||
![]() Сделай из таблицы "Прибул" выборку, сдается мне там данных просто нет.
Условия вообще выкинь. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
|||
|
|||
![]() Данные есть. Сумму по всей таблице считает верно. Так же верно выводит поиск по датам. А сумму по датам не считает. Может, это вообще невозможно? Я в литературе пока не встречала запроса c функцией SUM с выборкой именно по датам.
|
#8
|
||||
|
||||
![]() Ты хочешь просуммировать даты? Правильно понимаю?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
|||
|
|||
![]() Мне нужно подсчитать доходы предприятия за определенный период времени. Есть таблица Dohod, в которой есть такие поля, как data и summa. Нужно, скажем, посчитать сумму доходов за период с 25.01.2013 по 26.02.2013.
|
#10
|
||||
|
||||
![]() какой тип поля data?
|
#11
|
|||
|
|||
![]() дата время. Но я записываю только дату в кратком формате (дд.мм.гггг). В запросе тоже проделываю с DateTimePicker такую штуку, чтобы получить только дату:
Код:
StrToDateTime(DateToStr(DateTimePicker1.Date)) |
#12
|
||||
|
||||
![]() тогда так :
Код:
DM.ADOQuery1.Parameters.ParamByName('first_date').Value := StrToDateTime(DateToStr(DateTimePicker1.Date)+' 00:00:00'); DM.ADOQuery1.Parameters.ParamByName('last_date').Value := StrToDateTime(DateToStr(DateTimePicker2.Date)+' 23:59:59'); Последний раз редактировалось movnet, 11.03.2013 в 15:58. |
#13
|
|||
|
|||
![]() Все равно выдает ноль (
Я пробовала, тот же запрос, но без суммы правильно выводит все даты в заданном временном промежутке. Так же запрос работает корректно, если убрать условие с датами, тем самым требуя сумму по всем строкам таблицы. |
#14
|
||||
|
||||
![]() база данных какая?
|
#15
|
|||
|
|||
![]() MS Access 2007
|