Как суммировать два значения столбца/строки на основе идентификатора в SQL-запросе
Я хочу суммировать значение строк в запросе на основе условия
например
количество идентификаторов
1 125
2 3
3 111
32 169
я хочу суммировать, где id=2 и id=32 эти два значения строк могут суммироваться
любить
количество идентификаторов
1 125
2 171 (3+169)
3 111
пожалуйста, подскажите мне, как я могу это сделать
Что я уже пробовал:
select s.ShowCauseStatusId, s.CountA, case when s.ShowCauseStatusId =2 or s.ShowCauseStatusId =32 then SUM(CountA) else ' ' end as d from ( select ipgc.ShowCauseStatusId ,count(*) as CountA from dbo.MemoIntellectualPropertyGoodsClass mipgc left join dbo.IntellectualPropertyGoodsClass ipgc on mipgc.IntellectualPropertyGoodsClassId = ipgc.Id and ipgc.DataEntryStatusId=1 left join dbo.MemoIntellectualProperty mip on mipgc.MemoProductId = mip.Id and mip.DataEntryStatusId=1 left join dbo.IntellectualProperty ip on ipgc.IntellectualPropertyId = ip.Id and ip.DataEntryStatusId=1 left join dbo.Memo m on mip.MemoId = m.Id and m.DataEntryStatusId=1 left join dbo.GoodsClass gc on ipgc.GoodsClassId = gc.Id and gc.DataEntryStatusId=1 left join dbo.Corporate c on ip.ProductCorporateId = c.Id and c.DataEntryStatusId=1 left join dbo.ContactPerson cp on c.AccountManagerId = cp.Id and cp.DataEntryStatusId=1 left join dbo.StatusCorrespondence sc on ipgc.StatusId = sc.Id and sc.DataEntryStatusId=1 left join dbo.TrademarkLetterRemark ltr on ipgc.LetterRemarkId = ltr.Id where mipgc.DataEntryStatusId = 1 and ip.IntellectualPropertyTypeId = 4 and m.IntellectualPropertyCaseTypeId = 1 and (ipgc.StatusId = 9) and c.CorporateStatusId=1 and (ipgc.ShowCauseStatusId in (1,2,3) or ipgc.StatusId=32) and c.CorporateStatusId=1 and ipgc.ApplicationNumber is not null group by ipgc.ShowCauseStatusId union all select ipgc.StatusId ,count(*) as Count from dbo.MemoIntellectualPropertyGoodsClass mipgc left join dbo.IntellectualPropertyGoodsClass ipgc on mipgc.IntellectualPropertyGoodsClassId = ipgc.Id and ipgc.DataEntryStatusId=1 left join dbo.MemoIntellectualProperty mip on mipgc.MemoProductId = mip.Id and mip.DataEntryStatusId=1 left join dbo.IntellectualProperty ip on ipgc.IntellectualPropertyId = ip.Id and ip.DataEntryStatusId=1 left join dbo.Memo m on mip.MemoId = m.Id and m.DataEntryStatusId=1 left join dbo.GoodsClass gc on ipgc.GoodsClassId = gc.Id and gc.DataEntryStatusId=1 left join dbo.Corporate c on ip.ProductCorporateId = c.Id and c.DataEntryStatusId=1 left join dbo.ContactPerson cp on c.AccountManagerId = cp.Id and cp.DataEntryStatusId=1 left join dbo.StatusCorrespondence sc on ipgc.StatusId = sc.Id and sc.DataEntryStatusId=1 left join dbo.TrademarkLetterRemark ltr on ipgc.LetterRemarkId = ltr.Id where mipgc.DataEntryStatusId = 1 and ip.IntellectualPropertyTypeId = 4 and m.IntellectualPropertyCaseTypeId = 1 -- and (ipgc.StatusId = 9) and c.CorporateStatusId=1 and ipgc.StatusId=32 and c.CorporateStatusId=1 and ipgc.ApplicationNumber is not null group by ipgc.StatusId ) as s
Mohibur Rashid
Почему вы выбрали 2 и 32? почему вы показываете 2 в качестве идентификатора?
Noman Suleman
да, я заменил 32 на 2, тогда это работает.