Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2009, 12:58   #1
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию Объединение 2-х запросов

Имеется 2 запроса для двух ADOQuery:

Код:
select key_syrie, sum (Cena * V) as Summa FROM syrie where koef=0 group by key_syrie
Код:
select key_syrie, sum (Cena * V * koef) as Summa FROM syrie where koef>0 group by key_syrie
Необходимо объеденить всё в один запрос, чтобы использовался один ADOQuery. Значением Summa является сумма полей Summa для первого и второго запроса
База данных Access.

Последний раз редактировалось SlavaSH; 25.12.2009 в 16:13.
SlavaSH вне форума Ответить с цитированием
Старый 25.12.2009, 13:54   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

так?
Код:
select 
  key_syrie, 
  sum (Cena * V * case when koef = 0 then 1 else koef end) as Summa 
FROM syrie 
group by key_syrie
soleil@mmc вне форума Ответить с цитированием
Старый 25.12.2009, 16:06   #3
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
так?
Код:
select 
  key_syrie, 
  sum (Cena * V * case when koef = 0 then 1 else koef end) as Summa 
FROM syrie 
group by key_syrie
супер! в FireBird такая штука срабатывает, а если БД Access, то в при открытии ADOQuery выскакивает:
Код:
Неопознанная ошибка
А с IF как можно сделать?
SlavaSH вне форума Ответить с цитированием
Старый 25.12.2009, 21:18   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а так?
Код:
select key_syrie, sum (Cena * V) as Summa FROM syrie where koef=0 group by key_syrie
union all
select key_syrie, sum (Cena * V * koef) as Summa FROM syrie where koef>0 group by key_syrie
soleil@mmc вне форума Ответить с цитированием
Старый 27.12.2009, 13:34   #5
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
а так?
Код:
select key_syrie, sum (Cena * V) as Summa FROM syrie where koef=0 group by key_syrie
union all
select key_syrie, sum (Cena * V * koef) as Summa FROM syrie where koef>0 group by key_syrie
так работает, но результат получается совсем не тот, что нужен. Просто появляется в 2 раза больше записей, а они должны суммироваться!
SlavaSH вне форума Ответить с цитированием
Старый 27.12.2009, 18:07   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

тогда сделай из 2го варианта запроса вьюху v$sum_by_syrie? а итоговый запрос вернет как надо
Код:
select 
  key_syrie, 
  sum (summa) as Summa 
FROM v$sum_by_syrie 
group by key_syrie
soleil@mmc вне форума Ответить с цитированием
Старый 28.12.2009, 10:08   #7
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
тогда сделай из 2го варианта запроса вьюху v$sum_by_syrie? а итоговый запрос вернет как надо
Код:
select 
  key_syrie, 
  sum (summa) as Summa 
FROM v$sum_by_syrie 
group by key_syrie
спасибо большое. Но я разобрался как сделать по-другому... Всё элементарно и просто в Access вместо case используется IIF:

Код:
select 
  key_syrie, 
  sum (Cena * V * IIf (koef = 0, 1,koef) as Summa 
FROM syrie 
group by key_syrie
Спасибо за помощь
SlavaSH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
12 SQL-запросов Best Programmist Microsoft Office Access 7 12.12.2009 20:46
Выполнение запросов к БД rcr БД в Delphi 17 22.05.2009 16:28
Написание SQL-запросов tsergey Помощь студентам 9 12.02.2009 11:17
несколько запросов SQL Arteom БД в Delphi 3 09.09.2007 23:39
Конструктор запросов kaa БД в Delphi 12 20.12.2006 16:45