SQL Server 2012 사용
조인 된 두 개의 테이블이 있습니다.
[APXFirm].[AdvApp].[vMarketIndexRate]
[APXFirm].[AdvApp].[vMarketIndex]
이 두 가지를 결합하면 IndexName, AsofDate 및 Rate를 얻을 수 있습니다.
그러나 두 인덱스의 가중 합계를 계산하고 싶습니다. S & P500 가중치는 .4, DJ Average 가중치는 .6입니다. 아래 쿼리를 시도하고 결과를 얻었지만 혼합 비율이 아닙니다. 첫 번째 인덱스 비율입니다.
예를 들어 주어진 날짜에 SP = 100이고 DJ = 200 인 경우 혼합 비율은 40 + 120 = 160이어야합니다.
여기 내 질문입니다
USE APXFIRM
SELECT 'Blend' AS 'IndexName', ir1.AsOfDate,
SUM(ir1.rate*.4+ir2.rate*.6) AS 'blendrate'
FROM [APXFirm].[AdvApp].[vMarketIndexRate] IR1
INNER JOIN [APXFirm].[AdvApp].[vMarketIndex] MI1
ON IR1.indexid = mi1.indexid
INNER JOIN [APXFirm].[AdvApp].[vMarketIndexRate] IR2
ON ir2.indexid = ir1.indexid AND ir2.asofdate = ir1.asofdate
INNER JOIN [APXFirm].[AdvApp].[vMarketIndex] MI2
ON ir2.indexid = ir1.indexid AND ir2.asofdate = ir1.asofdate
WHERE mi1.indexname = 'sp'
AND mi2.indexname = 'djind'
GROUP BY MI1.IndexName ,
IR1.AsOfDate ,
IR1.Rate ,
MI2.IndexName ,
IR2.AsOfDate ,
IR2.Rate
다음은 모든 데이터의 샘플입니다. 가중치는 실제 열이 아닙니다. 설명 목적으로 포함했습니다.
IndexName AsOfDate rate weight IndexName AsOfDate rate weight BlendRate
SP500 12/31/2012 100 0.6 DowJones 12/31/2012 90 0.4 96
SP500 1/31/2013 110 0.6 DowJones 1/31/2013 95 0.4 104
SP500 2/28/2013 120 0.6 DowJones 2/28/2013 100 0.4 112
SP500 3/31/2013 130 0.6 DowJones 3/31/2013 110 0.4 122
다음은 원하는 출력입니다.
IndexName AsOfDate BlendRate
Blend 12/31/2012 96
Blend 1/31/2013 104
Blend 2/28/2013 112
Blend 3/31/2013 122
문제를 올바르게 이해했다면 문제는 "from"블록에 있습니다. 다음을 사용해보십시오.
SELECT 'Blend' AS 'IndexName'
,ir1.AsOfDate
,SUM(ir1.rate*.4+ir2.rate*.6) AS 'blendrate'
FROM [APXFirm].[AdvApp].[vMarketIndexRate] IR1
INNER JOIN [APXFirm].[AdvApp].[vMarketIndex] MI1
ON IR1.indexid = mi1.indexid
INNER JOIN [APXFirm].[AdvApp].[vMarketIndexRate] IR2
ON ir2.asofdate = ir1.asofdate
INNER JOIN [APXFirm].[AdvApp].[vMarketIndex] MI2
ON ir2.indexid = mi2.indexid
WHERE mi1.indexname = 'sp'
AND mi2.indexname = 'djind'
GROUP BY MI1.IndexName
,IR1.AsOfDate
,IR1.Rate
,MI2.IndexName
,IR2.AsOfDate
,IR2.Rate
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다