Я пытаюсь извлечь данные из трех разных таблиц, и мой результирующий набор не является тем, что я ожидаю.Правильный способ подключения к 3 таблицам
SELECT mdp.ReportDate
, mdp.PolicyNumber
, Company
, StateCode
, LOB
, mdp.AccountReference
, EffectiveDate
, EquityDate
, AccountBalance
, TermPremium
, DelinquentAmount
, PolicyStatus
, dcbpt.PolicyTermExtendedData
, TermsInDays
, dcba.AccountId
FROM Bil_MonthlyDelinquentPayments mdp
INNER JOIN DC_BIL_Account AS dcba
ON PolicyNumber = dcba.AccountReference
AND ReportDate = (
SELECT Max(ReportDate)
FROM Bil_MonthlyDelinquentPayments maxmdp
WHERE Year(maxmdp.ReportDate) = 2017
AND Month(maxmdp.ReportDate) = 01
)
LEFT JOIN DC_BIL_PolicyTerm AS dcbpt
ON dcba.AccountId = dcbpt.PrimaryAccountId
AND PolicyTermEffectiveDate = (
SELECT Max(PolicyTermEffectiveDate)
FROM DC_BIL_PolicyTerm
)
ORDER BY AccountId
В моем наборе результатов столбец dcbpt.PolicyTermExtendedData возвращается в нулевое значение. Этот столбец содержит данные в таблице, и я ожидаю, что мой результирующий набор будет содержать эти данные, но это не так.
Как узнать правильный запрос, если вы не предоставили достаточную информацию? Покажите нам пример данных и ожидаемый результат. \t Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/), чтобы узнать, как улучшить качество вопроса и получить лучшие ответы. –
делает ваше значение в таблице DC_BTL_PolicyTerm удовлетворяет условию "и PolicyTermEffectiveDate = (SELECT Max (PolicyTermEffectiveDate) FROM DC_BIL_PolicyTerm)" ??? –
Вы понимаете, как работает ['LEFT JOIN'] (https://www.tutorialspoint.com/sql/sql-left-joins.htm)? –