2013-04-03 3 views
0

Я пытаюсь суммировать стоимость, но проблема, которую я считаю в столбце затрат, не имеет заданных и нулевых значений рядом с фактическими значениями. Итак, Sum(t.cost) дает мне неправильную сумму, и coalesce(t.cost) дает мне неправильную сумму. Что нужно сделать, чтобы получить правильную сумму для каждого ученика?Сумма столбцов, которые содержат тип данных Differennt

+3

Почему 'sum (t.cost)' дает вам неправильные значения, если некоторые являются NULL? SQL игнорирует значения NULL при выполнении суммы. –

+2

Покажите нам свой запрос, образцы данных и ожидаемый результат. –

+0

Точно, если вы просто делаете sum (t.cost), функция агрегации будет игнорировать нуль. Должно быть, что-то еще не так. Вам нужно поделиться некоторыми образцами данных. – ljh

ответ

0

Я полагаю, что ваш столбец «стоимость» не является числовым?!? Что бы ...

declare @t table (id int, cost varchar(10) null) 

insert into @t values (1,'123.456') 
insert into @t values (2,'456.789') 
insert into @t values (3,null) 
insert into @t values (3,'notset') 

select sum(cast(nullif(cost,'notset') as money)) from @t 
Смежные вопросы