powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Проблема с запросом
3 сообщений из 3, страница 1 из 1
Проблема с запросом
    #35384097
cdrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть такой запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SELECT plangroup.kodgp kgp, plangroup.naim nim, cena_gp.cg_cena cgc,
(case when a.oetrn_invdate<'13.05.2008'  then  
 case when a.oetrn_price> 2000  then
  round(sum(a.oetrn_oinvqty*a.oetrn_price)/sum(a.oetrn_oinvqty), 2 ) else
  round(sum(a.oetrn_oinvqty*a1.oemer_pricevlt)/sum(a.oetrn_oinvqty), 2 ) end
  else round(sum(a.oetrn_oinvqty*a1.oemer_pricevlt)/sum(a.oetrn_oinvqty), 2 ) end) price3,
(case when a.oetrn_invdate<'13.05.2008'  then  
 case when a.oetrn_price> 2000  then
  round(sum(b.oetrn_oinvqty*b.oetrn_price)/sum(b.oetrn_oinvqty), 2 ) else
  round(sum(b.oetrn_oinvqty*b1.oemer_pricevlt)/sum(b.oetrn_oinvqty), 2 ) end 
  else round(sum(b.oetrn_oinvqty*b1.oemer_pricevlt)/sum(b.oetrn_oinvqty), 2 ) end) price4
FROM plangroup
join cena_gp on plangroup.item=cena_gp.cg_item and
cena_gp.cg_data='01.05.2008'
left join oetrn as a ON plangroup.item=a.oetrn_item and
(a.oetrn_invdate BETWEEN '02.05.2008' and '01.06.2008')
left join oemer as a1 ON
a.oetrn_ordnum=a1.oemer_ordnum and
(a.oetrn_linnum=a1.oemer_linnum)
left join oetrn as b ON plangroup.item=b.oetrn_item and
(b.oetrn_invdate BETWEEN '02.05.2008' and '01.06.2008')
left join oemer as b1 ON
b.oetrn_ordnum=b1.oemer_ordnum and
(b.oetrn_linnum=b1.oemer_linnum)
WHERE
plangroup.prog='цены'
group by  1 , 2 , 3 
order by  1 

в таком виде при выполнении выдается ошибка: "The column (price3) must be in the GROUP BY list",
а если в group by добавить 4 и 5 столбец, то пишет: "Cannot group by aggregate column"

раньше не было case и все работало. в чем может быть дело?
...
Рейтинг: 0 / 0
Проблема с запросом
    #35384159
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй написать CASE внутри SUM, а не наоборот, как у тебя сейчас сделано.
Но то есть что-то вроде такого:
Код: plaintext
SUM(case when ... then ... else ... end)
...
Рейтинг: 0 / 0
Проблема с запросом
    #35384185
cdrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прямо спас меня! Спасибо, все завелось!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Проблема с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]