Какой правильный синтаксис или можно использовать случай в разделе выбора и в нем? (С помощью SQL Server 2012)выберите случай с надписью «over partition by»
a = unique id
b = a string'xf%'
c = values
d = values
e = values
select
case
when b like 'xf%' then
(sum(c*e)/100*3423 over (partition by a))end as sumProduct
from #myTable
это то, что мне нужно решить, который является частью проблемы я имел ранее sumProduct in sql
редактировать: по запросу добавив некоторые образцы данных и ожидаемый результат создать таблицу #testing (б VARCHAR (20), дата, с Int, е Цела)
b a c e sumProduct (expected)
xf1m 2015.03.02 1 3 (1*3 + 2*5 + 4*2 +3*6)*100/3423
xf3m 2015.03.02 2 5 (1*3 + 2*5 + 4*2 +3*6)/100*3423
xf5y 2015.03.02 4 2 (1*3 + 2*5 + 4*2 +3*6)/100*3423
xf10y 2015.03.02 3 6 (1*3 + 2*5 + 4*2 +3*6)/100*3423
adfe 2015.03.02 2 5 ---this is skipped because is not xf%
xf1m 2013.02.01 7 2 (7*2 + 1*8 + 10*1)/100*3423
xf15y 2013.02.01 1 8 (7*2 + 1*8 + 10*1)/100*3423
xf20y 2013.02.01 10 1 (7*2 + 1*8 + 10*1)/100*3423
я увидел, что проблема заключается в следующем: материал добавляется, даже если они не соответствуют критериям. В моей скрипке вы можете видеть, что результат sumProduct составляет 49 вместо 39, потому что добавляется 2 * 5 от adfe. Что я могу сделать по этому поводу?
create table #testing (b varchar (20), a date, c int, e int)
insert into #testing (b,a,c,e)
values
('xf1m','2015-03-02','1','3'),
('xf3m','2015-03-02','2','5'),
('xf5y','2015-03-02','4','2'),
('xf10y','2015-03-02','3','6'),
('adfe','2015-03-02','2','5'),
('xf1m','2013-02-01','7','2'),
('xf15y','2013-02-01','1','8'),
('xf20y','2013-02-01','10','1')
редактировать: найдено решение, написал его в качестве ответа ниже
Можно ли переформулировать проблему по-другому? или что я делаю неправильно (относительно downvote). Все еще новичок на этом сайте, любое предложение поможет. Спасибо –