2015-08-12 2 views
-4

Мне нужно создать один вид, в запросе я использую инструкцию union, но SQL Server показывает ошибку об этом.SQL Server create view with union

Это запрос:

select 
    co.number, co.dateCo, co.value, 
    cl.id, cl.name, cl.lastname, 
    sl.id, sl.name, sl.lastname, 
    cd.id, cd.name, 
    d.lastname, '0000' CompanyID, '' CompanyName, 
from 
    contrat co 
inner join 
    customer cl on co.constumer = cl.id 
inner join 
    Seller sl on co.seller = sl.id 
inner join 
    collector cd on co.collector = cd.id 

union 

select 
    co.number, co.dateCo, co.value, 
    cl.id, cl.name, cl.lastname, 
    sl.id, sl.name, sl.lastname, 
    cd.id, cd.name, 
    d.lastname, cp.id CompanyID, cp.name CompanyName, 
from 
    contrat co 
inner join 
    customer cl on co.constumer = cl.id 
inner join 
    Seller sl on co.seller = sl.id 
inner join 
    collector cd on co.collector = cd.id 
inner join 
    Company cp on co.company = co.id 
+7

В целом, если вы публикуете вопрос об ошибке, отправьте сообщение об ошибке, которую вы получаете. – Dan

+0

Вы также можете рассмотреть UNION ALL vs Union, это быстрее, если вы не пытаетесь устранить дубликаты. –

+0

Прежде всего, оба списка столбцов заканчиваются ненужной запятой ',' непосредственно перед 'from' - удалять это. В вашем втором 'select' последнее условие соединения кажется неправильным:' Company cp on co.company = co.id' - не должен ли один из двух столбцов быть из таблицы 'cp'? –

ответ

1

У вас есть лишняя запятая перед вашей статьи from. Правильное утверждение будет выглядеть следующим образом.

select co.number, co.dateCo, co.value, cl.id, cl.name, cl.lastname, sl.id,  
    sl.name, sl.lastname, cd.id, cd.name, d.lastname, '0000' CompanyID, '' 
    CompanyName 
from contrat co inner join customer cl on co.constumer=cl.id 
inner join Seller sl on co.seller=sl.id 
inner join collector cd on co.collector=cd.id 
union 
select co.number, co.dateCo, co.value, cl.id, cl.name, cl.lastname, sl.id, 
    sl.name, sl.lastname, cd.id, cd.name, d.lastname, cp.id CompanyID, cp.name 
    CompanyName 
from contrat co inner join customer cl on co.constumer=cl.id 
inner join Seller sl on co.seller=sl.id 
inner join collector cd on co.collector=cd.id 
inner join Company cp on co.company=co.id