当我在这个表上运行一个简单的SELECT语句时,我得到一行(这是正确的,应该只有一行).这是SELECT语句:
select * from Lending.HMDA where BatchId = 1
Run Code Online (Sandbox Code Playgroud)
这是我正在执行的proc,它不返回任何行:
DECLARE @BatchStartDate datetime, @BatchEndDate datetime
SELECT @BatchStartDate = StartDate, @BatchEndDate = EndDate FROM Lending.HMDAReportBatch WHERE BatchId = 1
-- HMDA And App Data
SELECT
A.ApplicationId,
A.CreatedDate,
LU14.LookupCode AS LoanTypeId,
LU1.LookupCode AS PropertyTypeId,
LU2.LookupCode AS LoanPurposeId,
LU3.LookupCode AS OwnerOccupancyId,
L.FinalLoanAmount,
LU4.LookupCode AS PreApprovalId,
LU5.LookupCode AS ActionId,
A.ActionDate,
H.MSA,
LU6.MiscCode1 AS StateId,
LU7.LookupCode AS CountyId,
H.CensusTract,
LU8.LookupCode AS ApplicantEthnicityId,
LU9.LookupCode AS JointEthnicityId,
H.IsApplicantRaceAmericanIndian,
H.IsApplicantRaceAsian,
H.IsApplicantRaceBlack,
H.IsApplicantRaceIslander,
H.IsApplicantRaceNA,
H.IsApplicantRaceNotProvided,
H.IsApplicantRaceWhite,
H.IsJointRaceAmericanIndian,
H.IsJointRaceAsian,
H.IsJointRaceBlack,
H.IsJointRaceIslander,
H.IsJointRaceNA,
H.IsJointRaceNotProvided,
H.IsJointRaceWhite,
LU10.LookupCode AS ApplicantGenderId,
LU11.LookupCode AS JointGenderId,
LU12.LookupCode AS LoanPurchaserId,
H.IsDenialReasonCash,
H.IsDenialReasonCollateral,
H.IsDenialReasonCreditHistory,
H.IsDenialReasonDTI,
H.IsDenialReasonEmploymentHistory,
H.IsDenialReasonIncomplete,
H.IsDenialReasonInverifiableInfo,
H.IsDenialReasonMortgageInsuranceDenied,
H.IsDenialReasonOther,
H.RateSpread,
H.IsHOEPA,
LU13.LookupCode AS LienStatusId
--@BatchStartDate AS BatchStartDate,
--@BatchEndDate AS BatchEndDate
FROM Lending.HMDA H
INNER JOIN Lending.Application A ON H.ApplicationId = A.ApplicationId
INNER JOIN Lending.Loan L ON H.ApplicationId = L.ApplicationId
INNER JOIN tblLookup AS LU1 ON H.PropertyTypeId = LU1.LookupID
INNER JOIN tblLookup AS LU2 ON H.LoanPurposeId = LU2.LookupID
INNER JOIN tblLookup AS LU3 ON H.OwnerOccupancyId = LU3.LookupID
INNER JOIN tblLookup AS LU4 ON H.PreApprovalId = LU4.LookupID
INNER JOIN tblLookup AS LU5 ON H.ActionId = LU5.LookupID
INNER JOIN tblLookup AS LU6 ON H.StateId = LU6.LookupID
INNER JOIN tblLookup AS LU7 ON H.CountyId = LU7.LookupID
INNER JOIN tblLookup AS LU8 ON H.ApplicantEthnicityId = LU8.LookupID
INNER JOIN tblLookup AS LU9 ON H.JointEthnicityId = LU9.LookupID
INNER JOIN tblLookup AS LU10 ON H.ApplicantGenderId = LU10.LookupID
INNER JOIN tblLookup AS LU11 ON H.JointGenderId = LU11.LookupID
INNER JOIN tblLookup AS LU12 ON H.LoanPurchaserId = LU12.LookupID
INNER JOIN tblLookup AS LU13 ON H.LienStatusId = LU13.LookupID
INNER JOIN tblLookup AS LU14 ON H.LoanTypeId = LU14.LookupID
WHERE H.BatchId = 1 AND H.IsExcluded <> 'True'
Run Code Online (Sandbox Code Playgroud)
为什么proc没有返回任何数据?可能出现这种情况的可能情况是什么?
一个inner join只有在返回行on条件匹配.尝试将它们全部更改为left outer join并查看是否有任何行.
在a中left join,表的列将null在on条件无法匹配时.这通常是查找违规表的快捷方式.
| 归档时间: |
|
| 查看次数: |
1562 次 |
| 最近记录: |