ORA-00933: команда SQL неправильно завершилась для псевдонима таблицы - PullRequest
0 голосов
/ 26 февраля 2019

Возникли проблемы с получением этого к работе.Каждый запрос работает индивидуально, однако, когда я пытаюсь присвоить псевдоним каждому подзапросу для работы Join, я получаю сообщение об ошибке:

Команда SQL не завершена должным образом.Любые предложения будут чрезвычайно признательны.

Select C.* 
From 
    (
        (
            Select 
                a.*,
                Row_Number() Over(Partition By referral_id Order By start_date,line) as rn 
            from hcclsc.referral_Bed_Day a
        ) A
        Inner Join (
            Select
                a.referral_id,
                max(rn) as vn
            From (
                Select
                    referral_id,
                    line,
                    bed_day_type_id,
                    start_date,
                    end_date,
                    Row_Number() Over(Partition by referral_id Order By start_date, line) as rn
                From HCCLSC.referral_Bed_Day 
            ) a
            Group by referral_id
        ) B
        On A.referral_ID = B.referral_id and a.rn = b.vn
    ) C

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вы присоединяетесь от A к B, но затем не выбираете ничего из этих объединенных подзапросов.

Эта часть:

Select C.* 
From 
    (
        (

потребуется указать столбцы для выбора из объединения;если вы хотите получить их все из обоих подзапросов, то:

Select C.* 
From 
    (
        Select *
        From
            (

, но тогда дополнительный уровень подзапроса ничего не добавляет, и вы можете удалить уровень C:

Select * 
From 
    (
        Select 
            a.*,
            Row_Number() Over(Partition By referral_id Order By start_date,line) as rn 
        from hcclsc.referral_Bed_Day a
    ) A
    Inner Join (
        Select
            a.referral_id,
            max(rn) as vn
        From (
            Select
                referral_id,
                line,
                bed_day_type_id,
                start_date,
                end_date,
                Row_Number() Over(Partition by referral_id Order By start_date, line) as rn
            From HCCLSC.referral_Bed_Day 
        ) a
        Group by referral_id
    ) B
    On A.referral_ID = B.referral_id and a.rn = b.vn
0 голосов
/ 26 февраля 2019

попробуйте, как показано ниже, используя cte

with cte as
(
Select
    a.referral_id
    max(rn) as vn
    From
        (Select
        referral_id
        ,line
        ,bed_day_type_id
        ,start_date
        ,end_date
        ,Row_Number() Over(Partition by referral_id Order By start_date, line) as rn
        From
        HCCLSC.referral_Bed_Day
    ) a Group by referral_id
), cte2 as
(
Select
    a.*
    ,Row_Number() Over(Partition By referral_id Order By start_date,line) as rn
    from
    hcclsc.referral_Bed_Day a
) select A.*,B.* from cte A join cte2 B 
 on  A.referral_ID = B.referral_id and A.vn= B.rn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...