Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Résoudre l'erreur de l'identifiant en plusieurs parties n'a pas pu être liée dans SQL Server

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

Je pense que ce que vous voulez, c'est ceci avec un INNER JOIN explicite. Je sépare également les conditions de filtrage et 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