Когда я запускаю следующий запрос, ошибки нет, но когда я использую тот же запрос в сложном запросе, я получаю ошибку
Неверное имя столбца 'BillPaidAmount'
Простой запрос, который выполняется без ошибок:
select
DateOfPayment,
isnull(sum(BillPaidAmount), 0)
from
SupplyInvoicePaymentHistory
group by
DateOfPayment
Сложный запрос, который выдает ошибку "Неверное имя столбца 'BillPaidAmount'":
with Income (DateSold, Income) as
(
select
DateSold, isnull(sum(TotalBill), 0)
from
SalesInvoice
group by
DateSold
),
SupplierPayments (DateOfPayment, BillPaidAmount) as
(
select
DateOfPayment, isnull(sum(BillPaidAmount), 0)
from
SupplyInvoicePaymentHistory
group by
DateOfPayment
),
Expensis (Date, Amount) as
(
select
Date, isnull(sum(Amount), 0)
from
GeneralExpense
group by Date
),
t as
(
select
i.DateSold, e.Date, sp.DateOfPayment, i.income, e.Amount,
sum(isnull(i.income, 0) - (isnull(e.Amount, 0) + isnull(sp.BillPaidAmount, 0))) over (order by i.DateSold, e.Date, sp.DateOfPayment) as closing_balance
from
income i
full outer join
expensis e on e.Date = i.DateSold
full outer join
SupplierPayments sp on sp.DateOfPayment = i.DateSold
)
select
m.DateSold, m.Date, m.DateOfPayment,
isnull(m.opening_balance, 0) as Opening_Balance,
isnull(m.Income, 0) as Income,
isnull(m.Amount, 0) as Expensis,
isnull(m.closing_balance, 0) as Closing_Balance
from
(select
DateSold, Date, DateOfPayment,
lag(closing_balance, 1, 0) over (order by DateSold, Date, DateOfPayment) as opening_balance,
Income, Amount, closing_balance,
BillPaidAmount
from
t) as m
Я получил ошибку
Неверное имя столбца 'BillPaidAmount'
в последней строке кода выше, т.е.
select
DateSold, Date, DateOfPayment,
lag(closing_balance,1,0) over (order by DateSold, Date, DateOfPayment) as opening_balance,
Income, Amount, closing_balance, BillPaidAmount
from t