CASE в StoredProcedure
От: qqq0ppp  
Дата: 10.06.10 11:05
Оценка:
День добрый, подскажите начинающему

Есть таблица, н/р:
д1 д2 д3....(тип варчар)
3 2
б 3
5 3

мне нужно добыть сумму каждого столбца

если просто бы были цифры — то тогда все ОК
пишу
...
SELECT
SUM(CAST(Round(D1,2)As decimal(5,2))) As D1
FROM
...

но там есть и буквы, которые эквивалентны сумме=8
тогда пишу
...
SELECT
SumD2 =
CASE D1
WHEN 'б' then 8
ELSE
SUM(CAST(Round(D2,2)As decimal(5,2)))
END
FROM
...
и вот тебе подарок Column dbo.Zadanie.D2 is invalid in the select list because it is not contained in either an aggregate function or ORDER BY clause

подскажите что я делаю не так??
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.