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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.06.2015, 22:24
gewasop gewasop вне форума
Прохожий
 
Регистрация: 05.05.2015
Сообщения: 26
Версия Delphi: Delphi XE7
Репутация: 10
По умолчанию Вывод 3 столбцов с условиями после выполнения SQL запроса

Помогите пожалуйста сделать запрос.
Код:
  with qqry do
  begin  
    SQL.Clear;
    SQL.Add('SELECT SUM(PRICE) FROM OOC WHERE ID_MASTER='+Trim(QMASTERS.FieldByName('ID_MASTER').AsString) + ' AND DATE_END>= :d1');
    ParamByName('d1').Value := StartOfTheMonth(Now); //текущий месяц
    ParamByName('d2').Value := DateOf(StartOfTheMonth(IncMonth(Now, -1))); //прошлый месяц
    ParamByName('d3').Value := DateOf(StartOfTheMonth(IncMonth(Now, -2))); //позопрошлый месяц
    Open;
  end;
Вот первую часть с текущим месяцем я сделал, а остальное чето немогу впихнуть. Нужно чтобы в результате выводилось 3 столбца, т.е. объединять их не нужно.
Чтобы получилось что-то вроде:
Код:
SQL.Add('SELECT SUM(PRICE) FROM OOC WHERE ID_MASTER='+Trim(QMASTERS.FieldByName('ID_MASTER').AsString) + ' AND DATE_END>= :d1');
SQL.Add('SELECT SUM(PRICE) FROM OOC WHERE ID_MASTER='+Trim(QMASTERS.FieldByName('ID_MASTER').AsString) + ' AND DATE_END>= :d2');
SQL.Add('SELECT SUM(PRICE) FROM OOC WHERE ID_MASTER='+Trim(QMASTERS.FieldByName('ID_MASTER').AsString) + ' AND DATE_END>= :d3');
Но сделать это все в одном запросе.

Последний раз редактировалось gewasop, 14.06.2015 в 00:35.
Ответить с цитированием
  #2  
Старый 09.06.2015, 19:45
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Сложный зпрос получится.
Код:
SELECT SUM(c1), SUM(c2), SUM(c3) FROM
(
SELECT SUM(PRICE) as c1, null as c2, null as c3 FROM OOC WHERE ID_MASTER=:id1 AND DATE_END>= :d1
UNION ALL
SELECT null as c1, SUM(PRICE) as c2, null as c3 FROM OOC WHERE ID_MASTER=:id2 AND DATE_END>= :d2
UNION ALL
SELECT null as c1, null as c2, SUM(PRICE) as c3 FROM OOC WHERE ID_MASTER=:id3 AND DATE_END>= :d3
)
Если БД такое съест...
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
gewasop (14.06.2015)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter