Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 11.03.2013, 17:56
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

http://office.microsoft.com/ru-ru/ac...66611.aspx#BM4

Для фильтрации по диапазону значений можно также использовать оператор Between. Например, выражение Between #02.02.2006# and #04.02.2006# идентично выражению >#02.02.2006# and <#04.02.2006#.
Ответить с цитированием
Этот пользователь сказал Спасибо movnet за это полезное сообщение:
Chinvad (12.03.2013)
  #17  
Старый 12.03.2013, 21:14
Chinvad Chinvad вне форума
Прохожий
 
Регистрация: 23.11.2011
Сообщения: 23
Репутация: 10
По умолчанию

Запрос работает верно. Вот только что создала новый проект, все получается. Стало быть, у меня какая-то какашка с базой... Всем спасибо за помощь, буду дальше разбираться, что не так.

Последний раз редактировалось Chinvad, 12.03.2013 в 21:52.
Ответить с цитированием
  #18  
Старый 12.03.2013, 21:58
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
  try
    ADOQuery10.Close;
    ADOQuery10.SQL.Text := 'SELECT SUM(summa) as d FROM dohod WHERE data BETWEEN :first_date AND :last_date';
    ADOQuery10.Parameters.ParamByName('first_date').DataType := ftDate;
    ADOQuery10.Parameters.ParamByName('last_date').DataType := ftDate;
    ADOQuery10.Parameters.ParamByName('first_date').Value := DateTimePicker1.Date;
    ADOQuery10.Parameters.ParamByName('last_date').Value := DateTimePicker2.Date;
    ADOQuery10.Open;
  except
  end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
Chinvad (12.03.2013)
  #19  
Старый 12.03.2013, 23:45
Chinvad Chinvad вне форума
Прохожий
 
Регистрация: 23.11.2011
Сообщения: 23
Репутация: 10
По умолчанию

Нашла таки проблему )
Т.к. дорабатываю чужую программу, столкнулась со многими неудобствами. Одно из них - русскоязычные названия полей в БД. Код весьма обширный, поэтому в рассматриваемой таблице Dohod я для начала переименовала поля, которые непосредственно нужны в запросе. Т.е. "data" и "summa". Но остались еще и такие, как "ФИО_сотрудника" и прочая ерунда. Так вот в таком виде запрос на сумму по всему столбцу
Код:
DM.ADOQuery1.SQL.Add('SELECT SUM(summa) AS D FROM Dohod');
а так же фильтр по датам
Код:
DM.ADOQuery1.SQL.Add('SELECT * FROM Dohod WHERE data BETWEEN :first_date AND :last_date');
работали! Это и сбило меня с толку ) Казалось бы, почему запросы по отдельности работают, а если соединить их вместе,
Код:
DM.ADOQuery1.SQL.Add('SELECT SUM(summa) AS D FROM Dohod WHERE data BETWEEN :first_date AND :last_date');
то получается 0. Но, как оказалось, запрос SUM с условиями НЕ РАБОТАЕТ при наличии хотя бы одного поля с русским названием в таблице. Сомневаюсь, что мой опыт пригодится и кто-то когда-то будет еще так же тупить ) Но обязана была отчитаться перед милыми людьми, что пытались мне помочь. Спасибо, каюсь )
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter