2017-08-08 6 views
0

J'utilise SQL Server Management Studio version 11.0.3128.0 avec SQL Server 2012.Erreur de syntaxe SQL Server Management Studio sur la jointure gauche?

J'ai cette requête, qui fonctionne quand je l'exécute, mais SSMS n'arrête pas de dire que sont des erreurs de syntaxe dans mon SQL, bien qu'il fonctionne bien . L'erreur est

L'identificateur en plusieurs parties bsr.budgetId ne pouvait pas être lié

et un

erreur de syntaxe à la ligne 2

SELECT 
    bh.cpNo as CodigoDoPedido, 
    df.registerDate as DataFechamento, 
    meh.pedidoCliente as NumeroDePedidoDoCliente, 
    bh.deliveryDate as DataEntrega, 
    ch.clientText as NomeCliente, 
    ah.addressCep as CEPEnderecoCliente, 
    ah.addressDistrict as DistritoEnderecoCliente, 
    ah.addressInfo as InfoEnderecoCliente, 
    ah.addressInfo2 as Info2EnderecoCliente, 
    ah.addressInfo3 as Info3EnderecoCliente, 
    ah.addressText as TextEnderecoCliente, 
    cih.cityText as CidadeEnderecoCliente, 
    sh.stateText as EstadoEnderecoCliente, 
    coh.countryText as PaisEnderecoCliente, 
    comh.commInfo as TelefoneCliente, 
    buh.buildText as ProjetoOrcamento, 
    bh.valorCustoDocumentacao as CustoDocumentacaoOrcamento, 
    bh.valorTotalEstrangeiro as ValorTotalEstrangeiroOrcamento 
from 
    _budget_hdr as bh 
    left join (
        select 
      bsr2.budgetId, 
      min(bsr2.registerId) as registerId  
        from _budgetStatus_reg as bsr2 
        where bsr2.budgetStatusId = 4  
        group by bsr2.budgetId 
    ) AS bsr on 
     bsr.budgetId = bh.budgetId 
    left join _budgetStatus_reg as df on 
     df.budgetId = bsr.budgetId AND 
     df.registerId = bsr.registerId  
    left join _minutaEletronica_hdr as meh on 
     meh.minutaId = bh.minutaId 
    left join _client_hdr as ch on 
     ch.clientId = bh.clientId 
    left join _clientAddress_rel as car on 
     car.clientId = ch.clientId and 
     car.addressTypeId = 0 
    left join _address_hdr as ah on 
     ah.addressId = car.addressId 
    left join city_hdr as cih on 
     cih.cityId = ah.cityId 
    left join state_hdr as sh on 
     sh.stateId = ah.stateId 
    left join country_hdr as coh on 
     coh.countryId = ah.countryId 
    left join _clientComm_rel as ccr on 
     ccr.clientId = ch.clientId 
    left join _comm_hdr as comh on 
     comh.commId = ccr.commId 
    left join build_hdr as buh on 
     buh.buildId = bh.buildId 
where 
    bh.budgetId = 76089; 

I abandonner, je ne sais vraiment pas ce qui ne va pas avec mon sql.

EDIT

j'ai changé cet alias répétant à bsr2, et il ne résout pas le problème

+0

La sous-requête sur la jointure gauche a le même alias 'bsr'. Supprimer cet alias dans la sous-requête à l'intérieur et je pense que cela va le réparer. –

+0

vous utilisez bsr deux fois, peut-être utiliser un autre nom – Alam

+0

changé l'alias, même numéro –

Répondre

0

Le problème est que vous utilisez le même alias, BSR, deux fois. Une fois dans la première partie gauche dans votre requête, et une deuxième fois lorsque vous alias la table dérivée dans cette jointure. Changez l'un d'entre eux, et vous devriez aller bien.

+0

changé l'alias, même numéro –

+0

@ AndréMarcondesTeixeira Pouvez-vous jeter ensemble 5 lignes de données factices et le coller dans SQLFiddle ou rextester? – Eli

0

Vous utilisez l'alias 'bsr' pour deux expressions complètement différentes. Je parie que c'est ce qui cause l'erreur.

+0

a changé l'alias, même numéro –