2017-08-14 1 views
-1

Wie kann ich den Gesamt-Premium für jedes VersicherteCounty und Durchschnitt für ExperienceMod, SchedureMod, TerritoryMod, EffectiveMod in einer Abfrage zurückgeben?Wie bekomme ich eine Gesamtsumme für jeden VersichertenCounty und Durchschnitt für jeden Mod

select * 
from (SELECT Insured, 
      InsuredCounty, 
      PolicyNumber, 
      EffectiveDate, 
      PolicyType, 
      SUM(Premium) as Premium, 
      ExperienceMod, 
      ISNULL(ScheduleMod,0) as ScheduleMod, 
      TerritoryMod, 
      ISNULL(EffectiveMod,0) as EffectiveMod, 
      ROW_NUMBER() OVER (PARTITION BY Insured,PolicyNumber,Premium, TransactionType ORDER BY PolicyType DESC) as rid 
     FROM ProductionReportMetrics 
     WHERE EffectiveDate <= EOMONTH(GETDATE()) 
     AND CompanyLine = 'Arch Insurance Company' 
     AND Insured <>'Jerry''s Test' 
     AND TransactionType = 'Policy' 
     GROUP BY Insured, 
       InsuredCounty, 
       PolicyNumber, 
       PolicyType, 
       EffectiveDate, 
       experienceMod, 
       ScheduleMod, 
       TerritoryMod, 
       EffectiveMod, 
       Premium, 
       EffectiveDate, 
       TransactionType 
    ) b 
where rid = 1 
ORDER BY InsuredCounty, Premium desc, EffectiveDate 

Aktuell Ergebnis sieht wie folgt aus:

enter image description here

Aber die wünschenswertes Ergebnis so aussehen würde:

enter image description here

+0

Können Sie bitte einige Beispieldaten und erwartete o/p. –

+0

Einige Beispieldaten hinzugefügt – Oleg

+0

Es ist völlig unklar, was Sie fragen. Pleae postet dies als Text und nicht als Bild. –

Antwort

0

Was ist das?

WITH CTE AS 
(
    SELECT 
    InsuredCounty AS InsuredCountry 
    , Premium  AS premium 
    , ExperienceMod AS ExperienceMod 
    , SchedureMod AS SchedureMod 
    , TerritoryMod AS TerritoryMod 
    , EffectiveMod AS EffectiveMod 
    FROM ProductionReportMetrics 
    WHERE EffectiveDate <= EOMONTH(GETDATE()) 
     AND CompanyLine = 'Arch Insurance Company' 
     AND Insured <>'Jerry''s Test' 
     AND TransactionType = 'Policy' 
) 
SELECT InsuredCountry 
    , SUM(premium) AS premium 
    , AVG(ExperienceMod) AS ExperienceMod 
    , AVG(SchedureMod) AS SchedureMod 
    , AVG(TerritoryMod) AS TerritoryMod 
    , AVG(EffectiveMod) AS EffectiveMod 
FROM CTE 
GROUP BY InsuredCountry 
ORDER BY InsuredCounty, Premium desc, EffectiveDate;