функция группировки SQL - PullRequest
1 голос
/ 15 мая 2011

Я использую соединение odbc с as400, я знаю, что строка соединения правильная и работает, так как все мои другие запросы работают без проблем.

Почему этот оператор SQL работает:

select
  rdqty,
  alib.rcvshpdt.mbsnodesc,
  rdauthor,
  rdtitle,
  rdediton,
  ifnull(iecactno,actvty) as actlvl,
  class,
  ifnull(ieclp,lp) as cst
from
  alib.rcvshpdt
  left outer join
  alib.bkmaster on alib.rcvshpdt.mbsnodesc=alib.bkmaster.mbsno
  left outer join
  alib.iecostda on alib.rcvshpdt.rcvno=alib.iecostda.rcvno
  and alib.rcvshpdt.mbsnodesc = alib.iecostda.mbsnodesc
where
  alib.rcvshpdt.rcvno='3930697'
order by
  actlvl asc

но как только я пытаюсь суммировать количество и сгруппировать результаты как следующие, это терпит неудачу.

select
  sum(rdqty) as quanity,
  alib.rcvshpdt.mbsnodesc,
  rdauthor,
  rdtitle,
  rdediton,
  ifnull(iecactno,actvty) as actlvl,
  class,
  ifnull(ieclp,lp) as cst
from
  alib.rcvshpdt
  left outer join
  alib.bkmaster on alib.rcvshpdt.mbsnodesc=alib.bkmaster.mbsno
  left outer join
  alib.iecostda on alib.rcvshpdt.rcvno=alib.iecostda.rcvno
  and alib.rcvshpdt.mbsnodesc = alib.iecostda.mbsnodesc
where
  alib.rcvshpdt.rcvno='3930697'
group by
  alib.rcvshpdt.mbsnodesc, rdauthor, rdtitle, rdediton, actlvl, class, cst
order by
  actlvl asc

1 Ответ

3 голосов
/ 15 мая 2011

Насколько я знаю, вы не можете группировать по псевдониму.Попробуйте изменить предложение Group, чтобы использовать вычисления непосредственно следующим образом:

alib.rcvshpdt.mbsnodesc, rdauthor, rdtitle, rdediton, ifnull (iecactno, actvty), класс ifnull (ieclp, lp)

...