Проблема во внутреннем запросе - PullRequest
0 голосов
/ 16 июня 2011
SELECT ReviewMain.LoanID AS [Loan ID], ReviewMain.Asofdate AS [As of Date],  
  (SELECT CreditRating FROM  tblReviewScalars AS Review 
   WHERE (Review.AsOfDate = (SELECT Max(AsOfDate) FROM tblReviewScalars 
                             WHERE AsOfDate<#4/19/2011#))
     AND (Review.LoanID=ReviewMain.LoanID)
     AND (Review.Asofdate=ReviewMain.Asofdate)) 
  AS [CreditRatingAt prior AsOfDate], 
FROM tblReportVectors AS ReportMain INNER JOIN
     tblReviewScalars AS ReviewMain ON (ReportMain.LoanID = ReviewMain.LoanID) 
                                 AND (ReportMain.AsOfDate = ReviewMain.AsOfDate)
WHERE (ReviewMain.Asofdate= DateValue(FunAsofdate()))
GROUP BY ReviewMain.LoanID, ReviewMain.Asofdate;

в приведенном выше запросе у меня есть внешний запрос и внутренний запрос, я получаю ответ для обоих, но когда я пишу (Review.LoanID=ReviewMain.LoanID) AND (Review.Asofdate=ReviewMain.Asofdate) это во внутреннем запросе, я получаю пустое значение, но Actul ответ для кредитования - CCC-. любое решение по внутреннему запросу.

1 Ответ

0 голосов
/ 16 июня 2011

Этот подзапрос:

(SELECT Max(AsOfDate) FROM tblReviewScalars 
 WHERE AsOfDate<#4/19/2011#)

Возвращает максимальное AsOfDate до 19.04.2011 для ALL кредитов, в отличие от максимального AsOfDate длякредит в текущем ряду.Вам необходимо изменить приведенный выше подзапрос следующим образом:

(SELECT Max(AsOfDate) FROM tblReviewScalars AS MaxPrior
 WHERE MaxPrior.AsOfDate<#4/19/2011# 
   AND MaxPrior.LoanID=ReviewMain.LoanID)

Кроме того, вам нужно избавиться от запятой в строке AS [CreditRatingAt prior AsOfDate],, чтобы у вас был синтаксически правильный SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...