2015-11-12 2 views
0

Этот вопрос частично ответил ранее, но я хотел бы добавить вопрос. Код, который я получил отсюда, работает, но я хотел бы получить только записи с iif (TblLoan.FutureValue имеет значение null, 0, TblLoan.FutureValue) - iif (Payment.TotalPaid - null, 0, Payment.TotalPaid) = 0 или меньше. другими словами, только записи, имеющие 0 или меньше Баланса.Как SUM и вычесть из разных столбцов таблицы в MSACCESS с критериями

SELECT TblLoan.LoanID, TblCustomer.LastName, Payment.TotalPaid AS Payments, iif(TblLoan.FutureValue is null, 0, TblLoan.FutureValue) - 
    iif(Payment.TotalPaid is null, 0, Payment.TotalPaid) AS Balance 
FROM (TblLoan LEFT JOIN (SELECT LoanID, sum(TotalAmount) as TotalPaid 
     FROM TblPayment group by LoanID 
     ) AS Payment ON Payment.LoanID = TblLoan.LoanID) LEFT JOIN TblCustomer ON TblLoan.CustomerID = TblCustomer.CustID; 

Я знаю, что там должно быть, где положение, но я не мог понять, куда положить его, поскольку размещение WHERE Balance = < 0 в конце заявления, кажется, не работает.

спасибо.

ответ

1

Вы должны повторно использовать само выражение в предложении where, а не в псевдониме «Баланс». Обратите внимание, что вы можете использовать Nzfunction вместо iif здесь:

SELECT  TblLoan.LoanID, 
      TblCustomer.LastName, 
      Payment.TotalPaid AS Payments, 
      Nz(TblLoan.FutureValue) - Nz(Payment.TotalPaid) AS Balance 
FROM  TblLoan 
LEFT JOIN (
       SELECT LoanID, 
         sum(TotalAmount) as TotalPaid 
       FROM TblPayment group by LoanID 
      ) AS Payment 
     ON Payment.LoanID = TblLoan.LoanID 
LEFT JOIN TblCustomer ON TblLoan.CustomerID = TblCustomer.CustID 
WHERE  Nz(TblLoan.FutureValue) - Nz(Payment.TotalPaid) <= 0; 
+0

Большое спасибо! – Ibanez1408

+0

Можно ли использовать Nz, если я работаю над фактическим мс-доступом? – Ibanez1408

+0

Несомненно, 'Nz' фактически является функцией VBA, поэтому поддерживается в самом MS Access. Если вы ищете синтаксис, который поддерживается и в других базах данных, вы можете использовать [COALESCE (..., 0) '] (https://msdn.microsoft.com/en-us/library/ офис/jj249645.aspx) ... – trincot

Смежные вопросы