2016-05-08 4 views
-1

У меня есть запросКак получить отдельный столбец и сумму другого столбца в SQL?

select b.* from TABLE a, TABLE b 
    where 
    a.hdr_pk_id = b.hdr_fk_id 
     and a.hdr_pk_id in (select bonus_pk_id 
    from BONUS_TABLE 
     where 
      STATUS='I' 
      and TYPE=2 
      )) ; 

возвращает образец данные:

empno empname amount 
1  a  100 
2  b  200 
3  c  300 
1  a  400 
2  b  100 
3  c  200 

Мне нужна отчетливая EMPNO и сумму (сумма) Например, как я могу получить данные, как

empno empname amount 
1  a  500 
2  b  300 
3  c  500 
+1

Вы можете использовать группу empno, а затем сумму на сумму – Tanmay

+0

Являются ли 'empno',' empname' и 'amount' единственными столбцами на таблице' B'? – APC

+0

Нет Есть много других столбцов в таблице B – user2093576

ответ

1
SELECT b.empno, b.empname, SUM(amount) 
FROM TABLE a, TABLE b 
WHERE a.hdr_pk_id = b.hdr_fk_id 
    and a.hdr_pk_id in (select bonus_pk_id 
    from BONUS_TABLE 
    where 
     STATUS='I' 
     and TYPE=2)) 
GROUP BY b.empno, b.empname; 
+0

ORA-00937: не групповая групповая функция 00937. 00000 - «не групповая групповая функция» – user2093576

+0

Группа была в неправильном месте, это обновление было обновлено, см. Выше. – GavinCattell

0

Я не уверен, но попробовал

select distinct b.* ,sum(b.amount) over (partition by empname) from TABLE a,TABLE b 
    where 
    a.hdr_pk_id = b.hdr_fk_id 
    and a.hdr_pk_id in (select bonus_pk_id 
    from BONUS_TABLE 
    where 
     STATUS='I' 
     and TYPE=2 
     )) ; 
Смежные вопросы