2011-07-25 6 views
2
select distinct 
    l.username, 
    p.payid, 
    p.paymentdate, 
    sum(p.paymentamount) as payment, 
    b.balance as balance 
from 
    tblUserLoginDetail l, 
    tblInvoicePaymentDetails p 
    left outer join tblPaymentCustomerBalance b 
    on p.accountnumber=10009 
    and p.payid=b.payid 
    and p.customerid=l.loginid 
    group by p.payid,p.paymentdate,b.balance,l.username 

L'erreur est:Résoudre « L'identifiant plusieurs parties ne pouvait pas être lié » erreur dans SQL Server

Msg 4104, Level 16, State 1, Line 1 
The multi-part identifier "l.loginid" could not be bound. 

Quelle est la solution?

Répondre

2

Vous avez une jointure croisée entre tblUserLoginDetail et tblInvoicePaymentDetails dans la clause FROM, de sorte que vous ne pouvez pas utiliser l.loginid dans la clause FROM

Je pense que ce que vous voulez est-ce avec une INNER JOIN explicite. I'e également séparé filtre et conditions de jointure:

select 
    l.username, 
    p.payid, 
    p.paymentdate, 
    sum(p.paymentamount) as payment, 
    b.balance as balance 
from 
    tblUserLoginDetail l 
    inner join 
    tblInvoicePaymentDetails p On p.customerid=l.loginid 
    left outer join 
    tblPaymentCustomerBalance b ON p.payid=b.payid 
where 
    p.accountnumber=10009 
group by 
    p.payid,p.paymentdate,b.balance,l.username 
+0

monsieur basé sur le tableau de paiement du compte 10009 3 enregistrements r là, mais table customerbalance un enregistrement est là, j'ai 3 dossiers et l'équilibre est 0 en restant enregistrements dans TableClient – hmk

+0

@ hmk: ce n'est pas pertinent à la question que vous avez posée – gbn

Questions connexes