상속 된 저장 프로 시저에서 작업 중이며 일부 크로스 적용 쿼리 (아래 쿼리 참조)가 있습니다. 나는 경험 많은 SQL 개발자를 보유하고 있지만 십자가 신청서는 그리 많지 않으므로 여기서 간단히 설명 할 수 있습니다.SQL 교차 적용 - 필요합니다 -이 예제에서 사용 된 이유에 대해 명확하지 않습니다.
내 질문은 교차 적용 그냥 열을 만들려면 함수 호출 및/또는 논리를 수행하는 것처럼 보이는 이러한 두 쿼리에 대한 및 선택 및 크로스 적용 완전히 제거 할 수 있습니다. 내가 왜 그것을 고맙게 생각하는지에 관해서는 당신이 어떤 종류의 설명을 할 수 있다면.
크로스 적용을 사용했을 때 본질적으로 십자가 적용 범위 밖의 테이블에 조인 할 십자가 적용 항목이있었습니다. 예를 들어 이런 식으로 십자가 내부에있을 수 있습니다 교차 테이블에 테이블에 "조인"크로스 테이블에 적용 할 : soh.SalesOrderID (테이블 안쪽) = sod.SalesOrderID (십자가 안의 테이블)
나는 아니다 아래의 2 가지 쿼리 또는 그 이유에 대한 내용을 확인하십시오.
SELECT
LeadInventory.LoanNumber,
'Client Age',
PEMWeightByClientAge.PEMWeight,
LeadInventory.ClientAge,
PEMWeightByClientAge.PEMWeight,
#LoanPEMModelHybrid.PEMModel
FROM LeadInventory
INNER JOIN #LoanPEMModelHybrid ON dbo.LeadInventory.LoanNumber = #LoanPEMModelHybrid.LoanNumber
CROSS APPLY
(
SELECT PEMWeight =
CASE
WHEN LeadInventory.ClientAge<=70 AND LeadInventory.ClientAge>=62 Then @PEMWeightAge62To70
WHEN LeadInventory.ClientAge<80 AND LeadInventory.ClientAge>70 THEN @PEMWeightAge71To80
WHEN LeadInventory.ClientAge>=80 THEN @PEMWeightAge80Plus
ELSE 0
END
) AS PEMWeightByClientAge
WHERE #LoanPEMModelHybrid.PEMModel = 'Application'
AND LeadInventory.ClientAge>0
SELECT DISTINCT
IDENTITY(INT, 1,1) AS ID,
LoanNumber,
Calculation.Prob AS TotalPEMScoreForLoan,
PEMModelCode
INTO #PEMScoreHybridFinal
FROM #PEMScoreHybrid
CROSS APPLY
(
SELECT Prob =
CASE PEMModelCode
WHEN 'Initial QQ' THEN CAST (EXP(@INITIALQQBASE+ TotalPEMScoreForLoan)/(EXP(@INITIALQQBASE+TotalPEMScoreForLoan)+1)*100 AS Decimal(9,2))
WHEN 'APPLICATION' THEN CAST (EXP(@APPLICATIONBASE+ TotalPEMScoreForLoan)/(EXP(@APPLICATIONBASE+TotalPEMScoreForLoan)+1)*100 AS Decimal(9,2))
END
) Calculation
감사합니다.
제 생각에는 당신이 완전히 정확합니다. 그것은 단지 어색한 구문입니다. 스크립트를 작성한 경우 함수로 만들거나 select 문에 스크립트를 포함시킵니다. 그러나, 그것이 이미 작동하는 경우 나는 그것을 리펙토링하는 것을 귀찮게 할 것이라고 확신하지 못한다. –