Решить ошибку «Не удалось связать многокомпонентный идентификатор» в SQL Server - PullRequest
2 голосов
/ 25 июля 2011
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

Ошибка:

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

Какое решение?

1 Ответ

2 голосов
/ 25 июля 2011

У вас есть перекрестное соединение между tblUserLoginDetail и tblInvoicePaymentDetails в предложении FROM, поэтому вы не можете использовать l.loginid в предложении FROM

Я думаю, что вам нужно это с явным INNER JOIN.Я также разделил условия фильтра и соединения:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...