2017-02-17 12 views
-2

Я пытаюсь присоединиться к этим 2 операторам выбора в SQL Server, но я получаю сообщение об ошибке.SQL: Как присоединиться к 2 операторам SELECT

SELECT 
    t1.AutoNumber, t1.last_autonumber, t1.ContactID, t2.KeyValue_String 
FROM 
    (SELECT 
     la.autonumber, 
     LAG(la.autonumber, 1) OVER (PARTITION BY la.ContactID ORDER BY la.issuedate asc) AS last_autonumber, 
     la.ContactID 
    FROM 
     loanagreements la 
    ORDER BY 
     la.ContactID desc, la.issuedate asc) as t1 
LEFT JOIN 
    (SELECT 
     la.autonumber, es.KeyValue_String 
    FROM 
     loanagreements la 
    JOIN 
     Enum.LoanStatuses es ON la.LoanStatus = es.KeyValue_Int) as t2 ON t1.last_autonumber = t2.autonumber 

Сообщения об ошибках:

Msg 1033, Level 15, State 1, Line 62
Поручения п недействительна в представлениях, встроенных функциях, производных таблиц, подзапросы, и общие выражения таблиц , если не указано значение TOP, OFFSET или FOR XML.

Msg 102, Level 15, State 1, Line 65
Неправильный синтаксис около 't2'.

+0

Вы забыли свой вопрос? –

+1

Итак ... какая ошибка? может быть полезно поделиться им с нами. – SqlZim

+0

Какая ошибка вы получаете? –

ответ

3

Вы не можете использовать заказ в подзапросе. Вы можете отредактировать свой запрос. Попробуй это.

select 
    t1.AutoNumber 
    , t1.last_autonumber 
    , t1.ContactID 
    , t2.KeyValue_String 
from (
    select 
     la.autonumber 
     , last_autonumber = lag(la.autonumber, 1) over (
     partition by la.ContactID 
      order by la.issuedate asc 
     ) 
    , la.ContactID 
    from loanagreements la 
    --order by la.ContactID desc, la.issuedate asc 
    ) as t1 
    left join (
    select 
     la.autonumber 
    , es.KeyValue_String 
    from loanagreements la 
    inner join Enum.LoanStatuses es 
     on la.LoanStatus = es.KeyValue_Int 
    ) as t2 
    on t1.last_autonumber = t2.autonumber 
+0

Нет причин, по которым вы не можете использовать ORDER BY в подзапросе ... хотя я согласен, что это ничего не способствует. Однако, не видя сообщение об ошибке OP, мы только догадываемся, в чем проблема. –

+0

@ RayO'Donnell http://stackoverflow.com/a/985953/2333499 – SqlZim

+0

Спасибо! Работает как шарм. –