Как суммировать сумму подарка без дубликатов подарков - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть такая таблица ...

GiftImpID  GiftAmt   Category
12345       12.00    Donation
12345       12.00    Donation
56789       10.00    Donation
56789       10.00    Donation
7890         5.00    Sale

Поэтому мне нужно добавить DISTINCT (GiftImpID) и GiftAmt для каждой категории.

Мне нужно получить

GiftAmt   Category
22.00     Donation
5.00      Sale

Я пытался

Select SUM(Giftamt), Category From #MDevReport 
Where GiftImpID
IN(Select DISTINCT(giftImpID) FROM #MDevReport) 
GROUP BY Category

Но я до сих пор добавляю дубликаты в сумму ...

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Используйте два уровня агрегации:

select category, sum(GiftAmt)
from (select Category, GiftImpID, avg(GiftAmt) as GiftAmt
      from #MDevReport 
      group by Category, GiftImpID
     ) dr
group by category;

Затем исправьте модель данных. Очевидно, повторение значений в каждой строке не подходит.

0 голосов
/ 16 апреля 2019

Использовать подзапрос:

select sum(GiftAmt), Category 
from (select distinct GiftImpID, GiftAmt, Category 
      from #MDevReport 
     ) t
group by Category; 
...