2017-02-01 10 views
-3

Что случилось с приведенным ниже кодом? Мне нужно, чтобы он сочетался между двумя операторами select.Вопрос с запросом SQL-союза

select 
    tt.SlpName, tt.Sum, tt.Duedate 
from 
    (select 
     t3.docnum as 'Invoice', null as 'Receipt', 
     isnull(t6.SlpName, t6.SlpName) 'slpname', 
     null as 'Sum', null as 'Duedate' 
    from 
     oitr t0 
    inner join 
     ITR1 t1 on t0.ReconNum = t1.ReconNum 
    inner join 
     ojdt t2 on t1.transid = t2.transid 
    inner join 
     oinv t3 on t3.docnum = t2.BaseRef and t1.IsCredit = 'D' 
    inner join 
     oslp t6 on t3.slpcode = t6.SlpCode 
    where 
     t1.ReconNum = '819272' 

    union all 

    select 
     t4.docnum as 'Receipt', null as 'Invoice', 
     'slpname', t5.checksum 'Sum', t5.DueDate 'Duedate' 
    from 
     oitr t0 
    inner join 
     ITR1 t1 on t0.ReconNum = t1.ReconNum 
    inner join 
     ojdt t2 on t1.transid = t2.transid 
    inner join 
     orct t4 on t4.docnum = t2.BaseRef and t1.IsCredit = 'C' 
    inner join 
     rct1 t5 on t5.docnum = t4.DocNum 
    where 
     t1.ReconNum = '819272') tt 

enter image description here

enter image description here

Я хочу, чтобы это было как этот

Спасибо

+0

Что в этом плохого? Ну, расскажи нам. Вы получаете сообщение об ошибке? Если да, то какое сообщение об ошибке? Или вы не получаете строки, которые хотите? Если да, то как они отличаются от того, что вы ожидаете? –

+0

Какие РСУБД это? Часто имеет значение, используете ли вы MySQL, PostgreSQL, Oracle, SQL Server или IBM DB2, или что-то еще. Добавьте соответствующий тег на свой вопрос! –

ответ

0

Заменить 'slpname' в своем нижнем запросе с isnull(t6.SlpName,t6.SlpName) и добавить inner JOIN oslp t6 on t3.slpcode = t6.SlpCode

+0

Это не работает, нет таблицы для соединения в нижней части, slpname доступно только в верхнем списке –

+0

Huumm вы правы, не заметили отсутствие ** oinv t3 ** Имеет ли t4 SPLNAME? Если это не так, я не смогу построить вам запрос, который угадывает SPLNAME из другого запроса. Если вы знаете, что это всегда одно и то же, вы можете попробовать сделать это, как это «MySplname», как Splame – Lobo