2015-08-12 1 views
-4

Je dois créer une vue, dans la requête j'utilise l'instruction union mais SQL Server affiche une erreur à ce sujet.SQL Server créer une vue avec union

C'est la requête:

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

En général, si vous postez une question concernant une erreur, vous devez également publier l'erreur que vous recevez. – Dan

+0

Vous voudrez peut-être envisager UNION ALL vs Union, c'est plus rapide si vous n'essayez pas d'éliminer les doublons –

+0

Tout d'abord, vos deux listes de colonnes se terminent par une virgule inutile, 'juste avant le' from' - supprimer cela. Dans votre deuxième 'select', la dernière condition de jointure semble incorrecte:' Company cp on co.company = co.id' - l'une des deux colonnes ne devrait-elle pas provenir de la table 'cp' ?? –

Répondre

1

Vous avez une virgule supplémentaire avant votre clause from. La bonne déclaration ressemblerait à suivre.

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