2013-12-08 2 views
0
select racuni.str_id 
    from racuni 
    where racuni.str_id in 
        (select racuni.str_id 
         from racuni 
          join stavke 
          on (racuni.racuni_id = stavke.rcn_id) 
        group by racuni.str_id 
        order by sum(stavke.iznos_kamate) desc 
        ) 
    and rownum = 1; 
+0

«group by» + 'order by' в подзапросе бесполезны. – wildplasser

+0

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

+0

Подзапрос 'in' возвращает чистый набор. У набора нет заказа. Ваше намерение не очень ясно; вы просто хотите найти str_id с наибольшей суммой (stavke.iznos_kamate)? (в этом случае вам, вероятно, понадобится 'HAVING' в подзапросе) – wildplasser

ответ

1

Сначала вы должны сделать заказ в самом внутреннем запросе, а затем выбрать первую строку во внутреннем запросе и затем получить этот racun во внешнем запросе. Например:

select racuni.* 
from racuni 
where racuni.str_id in 
      (select str_id 
       from 
       (select racuni.str_id 
        from racuni 
         join stavke 
         on (racuni.racuni_id = stavke.rcn_id) 
       group by racuni.str_id 
       order by sum(stavke.iznos_kamate) desc) 
       where rownum = 1); 
+0

Это работает отлично, ТНХ;) – Meteory

+0

Привет друг, что если я пытаюсь использовать это: выберите rcn_id, var_for_sum из (выберите soa.rcn_id, сумма (soa.iznos_kamate) ..... некоторый код) rcn_id я могу использовать, но hwo могу использовать сумму ?? – Meteory

Смежные вопросы