вставка выбора в выбор - PullRequest
       1

вставка выбора в выбор

0 голосов
/ 20 сентября 2018

Мне нужно получить имя пользователя для выбранного party_id, но мне нужно вставить вместо party_id, я пытаюсь с вложенными подзапросами, но всегда застрял в скобках.

У меня есть этот выбор вместоgm.party_id во втором выборе:

SELECT * FROM (
  select gm.party_id, sum(gm.game_out)
  from game_record gm
  where gm.party_id in (
    select cs.party_id
    from casino_users cs
    where cs.parent_id=get_party_id_from_promo(619)
  ) 
  group by party_id
  order by sum(game_out) desc
)
WHERE ROWNUM <= 10;

Мне нужно вставить этот выбор:

select username
from casino_users
where party_id in (
  select cs.party_id
  from casino_users cs
  where cs.parent_id=get_party_id_from_promo(619)
)

Также у меня есть функция, которая возвращает имя пользователя из party_id, но когда я пытаюсь скомпилироватьэто я получаю неверный идентификатор ошибки при первом выборе.

FUNCTION get_top_ten_highscore(p_promo_code number) RETURN WEAK_CUR IS
 resault_set weak_cur;

begin

 open resault_set for

     SELECT * FROM (
       select username_from_id (gm.party_id) as party_id, sum(gm.game_out)
       from game_record gm
       where gm.party_id in (
         select cs.party_id
         from casino_users cs
         where cs.parent_id=get_party_id_from_promo(619)
       ) 
       group by party_id
       order by game_out desc)
    WHERE ROWNUM <= 10;
    return  resault_set ;

end get_top_ten_highscore; 

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018
SELECT * FROM (
            select (select USERNAME FROM CASINO_USERS CU WHERE CU.PARTY_ID = gm.party_id) as username, 
            sum(gm.game_out) from game_record gm 
            where  gm.party_id in (select cs.party_id from casino_users cs where cs.parent_id=load_beting_data.get_party_id_from_promo(619)
            and party_id not in (7808,7810,7817,7818,7819,7821,7824,7825,7827,7823,7830,7812,7822,7831,7826,7829,7809,7811,7820,7828)) 
            group by party_id
            order by sum(game_out)  desc
            )
    WHERE ROWNUM <= 10;
0 голосов
/ 20 сентября 2018

Вы можете использовать JOIN

    SELECT 
      select gm.party_id, sum(gm.game_out), cs.username
      from game_record gm
      INNER JOIN  casino_users cs ON cs.parent_id=get_party_id_from_promo(619)
      WHERE ROWNUM <= 10;
      group by gm.party_id, cs.username
      order by sum(game_out) desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...