как суммировать итоги, но сохранить только одно имя из нескольких

У меня два CTE с ProducerCode , ProducerLocationID и ProducerName . Но из-за ошибки конечного пользователя имя ProducerName может немного отличаться от этих двух CTE . Как я могу сгруппировать SUM помощью ProducerCode и ProducerLocationID но сохранить только одно имя ProducerName (скажем, от первого CTE )?

Это то, что я получил сейчас:

введите описание изображения здесь Два ряда с ProducerCode 1321 и ProducerLocationID 1587 должны иметь NetWrittenPremium как 767,109, который равен (469956.00 + 297153.00). То же самое с WPNewBusiness но только у одного ProducerName как «The Harry W Gorst 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 

вы можете использовать max(Producer) в cte_TopWP cte и Drop Producer из своего оператора Group by .

Interesting Posts

Почему существует «GO» после USE db «в примерах T-SQL?

Комплексное редактирование сетки в C #

Можете ли вы добавить собственное доменное имя для соединения Azure SQL, поэтому не используйте xxxx.database.windows.net

TransactionScope TransactionAborted Exception – транзакция не откатна. Должно быть?

Возможно ли создать функцию SQL SERVER с использованием транзакции

CRM 2011 Silverlight Сохраненная процедура

SELECT из каталога по умолчанию связанного сервера

Объединение нескольких строк в выбранном элементе

Как получить поле SQL Server DateTime в локальном клиенте ODBC

Как ASP.NET MVC, как сохранить изображение в SQL Server uisng ajax post method?

Как подключить базу данных SQL Server из командной строки

Номер столбца загрузки SSIS (точность, масштаб)

Определите действие, которое удаляет все строки таблицы

Восстановление кода, удаляемого инструментами данных SQL Server (Visual Studio)

После установки новой установки SQL Server 2008 невозможно подключиться к localhost через проверку подлинности Windows

Давайте будем гением компьютера.