2つの日付間の差異(MaturityDate、PaymentDate)が1か月を超えている場合に1を返すステートメントにしたい場合。 満期日は、クライアントが支払を行うべき支払期日です。サブクエリが2つ以上の値を返しました。
私が試した:
CASE WHEN DATEDIFF(MONTH,
(SELECT Date FROM dim.RepaymentSchedule rs JOIN dim.Calendar cal ON cal.DateID = rs.MaturityDateID),
(SELECT Date FROM dim.RepaymentSchedule rs JOIN dim.Calendar cal ON cal.DateID = rs.PaymentDateID))
BETWEEN 1 AND 2 THEN 1 ELSE 0 END AS OneMonthDelay
CASE WHEN DATEDIFF(MONTH, 2017-06-30, 2017-08-01) BETWEEN 1 AND 2 THEN 1 ELSE 0 END AS OneMonthDelay
に類似体である、生憎の復帰
サブクエリは複数の値を返しました。 サブクエリが、=、!<、< =、>、> =、またはサブクエリが式 として使用されている場合は、これは許可されません。
ご協力いただければ幸いです。
EDIT:全クエリ
SELECT
pt.ProductType
,sr.SalesRegionName
,ca.CreditAdvisorID
,cal.CalendarYearMonth
,CASE WHEN DATEDIFF(MONTH,
(SELECT Date FROM dim.RepaymentSchedule rs JOIN dim.Calendar cal ON cal.DateID = rs.MaturityDateID),
(SELECT Date FROM dim.RepaymentSchedule rs JOIN dim.Calendar cal ON cal.DateID = rs.PaymentDateID))
BETWEEN 1 AND 2 THEN 1 ELSE 0 END AS OneMonthDelay -- >1 <2 not =>1 =<2
,CASE WHEN DATEDIFF(MONTH,
(SELECT Date FROM dim.RepaymentSchedule rs JOIN dim.Calendar cal ON cal.DateID = rs.MaturityDateID),
(SELECT Date FROM dim.RepaymentSchedule rs JOIN dim.Calendar cal ON cal.DateID = rs.PaymentDateID))
BETWEEN 2 AND 3 THEN 1 ELSE 0 END AS TwoMonthsDelay
,RANK() OVER (PARTITION BY c.ApplicationID ORDER BY rs.RepaymentNumber, rs.Amount) AS RankID
INTO #Frauds
FROM
dim.Contract c
JOIN dim.Application a ON c.ApplicationID = a.ApplicationID
JOIN dim.Calendar cal ON a.ApplicationDateID = cal.DateId
JOIN dim.CreditAdvisor ca ON a.OriginalCreditAdvisorID = ca.CreditAdvisorId
JOIN dim.SalesRegion sr ON ca.SalesRegionID = sr.SalesRegionId
JOIN dim.ProductType pt ON a.ProductTypeID = pt.ProductTypeID
JOIN dim.RepaymentSchedule rs ON c.ContractID = rs.ContractID
WHERE
((cal.CalendarYear >= @YearId) AND (rs.MaturityDateID < @DateId)) -- Since given year to this date
AND ((rs.PaymentDateID = 19000101) OR (rs.PaymentDateID > rs.MaturityDateID))
AND rs.Amount <> 0
エラーはかなり明確です。あなたは全体の質問を投稿できますか? – HoneyBadger
相関サブクエリまたは結合を使用します。 – jarlh
@HoneyBadgerクエリ全体に対して編集されます。 –