Имате кръстосано съединение между 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