我有兩個CTE
的ProducerCode
,ProducerLocationID
和ProducerName
。但由於最終用戶的錯誤,ProducerName
在這兩個CTE
之間可能略有不同。 我怎樣才能SUM
按ProducerCode
和ProducerLocationID
分組,但只保留一個ProducerName
(可以說從第一個CTE
)?如何總計總計但只保留一個名稱
這是我現在得到:
兩排ProducerCode
1321和1587 ProducerLocationID
需要有NetWrittenPremium
爲767109這是(469956.00 + 297153.00)。同樣的,WPNewBusiness
,但只能有一個ProducerName
爲 '哈利·w ^戈斯特CO。INC'
我需要這樣的:
這裏是我完整的查詢:
;WITH cte_TopWP --T
AS
(
SELECT ProducerCode,[Producer Location ID], Producer,
SUM(premium) as NetWrittenPremium,
SUM(CASE WHEN PolicyType = 'New Business' THEN Premium ELSE 0 END) as WPNewBusiness,
SUM(CASE WHEN PolicyType = 'Renewal' THEN Premium ELSE 0 END) as WPRenewal,
SUM(CASE WHEN PolicyType = 'Rewrite' THEN Premium ELSE 0 END) as WPRewrite,
SUM(CASE WHEN PolicyType = 'New Business' AND TransactionType = 'Policy' THEN 1 ELSE 0 END) as BindsNewBusiness,
SUM(CASE WHEN PolicyType = 'Renewal' AND TransactionType = 'Policy' THEN 1 ELSE 0 END) as BindsRenewals,
SUM(CASE WHEN PolicyType = 'Rewrite' AND TransactionType = 'Policy' THEN 1 ELSE 0 END) as BindsRewrite,
SUM(CASE WHEN PolicyType = 'New Business' AND TransactionType = 'Policy' THEN 1 ELSE 0 END) + SUM(CASE WHEN PolicyType = 'Renewal' AND TransactionType = 'Policy' THEN 1 ELSE 0 END) + SUM(CASE WHEN PolicyType = 'Rewrite' AND TransactionType = 'Policy' THEN 1 ELSE 0 END) as PolicyCount
FROM ProductionReportMetrics
WHERE EffectiveDate >=DateAdd(yy, -1, DATEADD(d, 1, EOMONTH(GETDATE()))) AND EffectiveDate <= EOMONTH(GETDATE()) AND TransactionType = 'Policy' AND CompanyLine = 'Plaza Insurance Company' AND ProducerType = 'Wholesaler'
GROUP BY ProducerCode,
[Producer Location ID],Producer
)
,
cte_Counts --C
AS
(
SELECT ProducerCode,ProducerLocationID,
COUNT (distinct ControlNo) as Submissions,
SUM(CASE WHEN QuotedPremium IS NOT NULL THEN 1 ELSE 0 END) as Quoted,
SUM(CASE WHEN Status = 'Declined' THEN 1 ELSE 0 END) as Declined
FROM ClearanceReportMetrics
WHERE EffectiveDate >=DateAdd(yy, -1, DATEADD(d, 1, EOMONTH(GETDATE()))) AND EffectiveDate <= EOMONTH(GETDATE()) AND CompanyLine = 'Plaza Insurance Company'
GROUP BY ProducerCode,
ProducerLocationID
)
SELECT
TOP 10 RANK() OVER (ORDER BY NetWrittenPremium desc) as Rank,
ROW_NUMBER() OVER (PARTITION BY t.ProducerCode, t.[Producer Location ID] ORDER BY NetWrittenPremium DESC) as num,
t.ProducerCode,
t.[Producer Location ID],
t.Producer as ProducerName ,
NetWrittenPremium,
WPNewBusiness,
WPRenewal,
WPRewrite,
PolicyCount,
Submissions,
Quoted,
BindsNewBusiness,
BindsRenewals,
BindsRewrite,
Declined
FROM cte_TopWP t INNER JOIN cte_Counts c ON t.ProducerCode=c.ProducerCode and c.ProducerLocationID=t.[Producer Location ID]
ORDER BY
NetWrittenPremium DESC
一個CTE是否有可靠的ProducerName? – jabs
好吧...讓我們說第一個cte。 – Oleg
認爲producername位於第二CTE。由於這個名字只在第一個CTE中出現,我看不到找到它的方法。你有不同的表格可以用來找到正確的名字嗎? – jabs