Oracle выбирает только один не дубликат в запросе 2 таблицы - PullRequest
1 голос
/ 24 сентября 2019

У меня есть 2 таблицы

a) нормализовать таблицу по уникальному значению col1

col1 col2 col3 col4 col5
10    j     u    c   z
20    r     y    b   k

b) таблица имеет несколько значений col1 из

col1 col2 col3 col4 col5
10    l   m     k   j
10    3   4     5   7
10    b   v     c   b
20    a   s     d   c

когда я выполняю свой запрос, мой результат показывает несколько записей в форме таблицы b .. Мне нужно сгруппировать по столбцу col1, но при группировании отображается сообщение ORA-00979: не выражение GROUP BY

Select cec.CLAIMNUM , cec.CLAIMNUM, cec.CLAIMID, cec.PROVIDERID, cec.PHYSICIANNAME,cec.PATIENTID ,cec.PATIENTFIRSTNAME || ' '||cec.PATIENTLASTNAME , cec.TOTALCHARGES , 
(Select Sum(TO_NUMBER (VALUESTRING)) from PRICINGMSGS pr where pr.CLAIMNUM = cec.CLAIMNUM and errorcode = 610000) as UCR,  
(SELECT Sum(SUBSTR(VALUESTRING, INSTR(VALUESTRING, '|')+1 ) )
FROM PRICINGMSGS p  where p.CLAIMNUM =cec.CLAIMNUM and errorcode = 610001)AS Medicare

 from CECLAIMS cec ,PRICINGMSGS price where 
 cec.CLAIMNUM = price.CLAIMNUM and
 cec.ACCTNUMBER = price.ACCTNUMBER and
cec.ACCTNUMBER ='TEST0001'   
group by cec.CLAIMNUM

1 Ответ

1 голос
/ 24 сентября 2019

В вашем запросе вы используете столбцы, отличные от cec.claimnumgroup by) в предложении select.

Запомните одно правило: если вы используете group by в своем запросе, то выможно использовать только columns непосредственно в предложении select, которые используются в group by.Все остальные столбцы должны использоваться с функцией aggregate.

SELECT COL1, 
       COL2, 
       AGGREGATE_FUNCTION(COL3) AS COL3,
       ...
  FROM YOUR TABLE
 GROUP BY COL1, COL2

Cheers !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...