![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить сумму значений по диапазонам [D6, MSSQL]
sh © (2004-10-05 20:38:00)День добрый!
Подскажите плз как получить
Признак|сумма диапазон1|сумма диапазон2|...
если есть
признак|значение
и диапазоны, например <0 и >0
и надо найти суммы значений соответстующие признакам, попадающих в эти диапазоны.
Johnmen (2004-10-06 09:15:00) [1]>и надо найти суммы значений соответстующие признакам,
> попадающихв эти диапазоны.
Всё зависит от того, правильно ли склонение выделенного слова.
ЮЮ (2004-10-06 03:02:00) [2]вариант 1:
SELECT
Codes.*, Gr1.Sum1, Gr2.Sum2
FROM
(SELECT DISTINCT признак as Code FROM Table) Codes
LEFT JOIN (
SELECT признак as Code, SUM(значение) Sum1, 0 Sum2
FROM Table
GROUP BY признак
WHERE значение < 0
) Gr1 ON Codes.Code = Gr1.Code
LEFT JOIN (
SELECT признак as Code, SUM(значение) Sum2, 0 Sum2
FROM Table
GROUP BY признак
WHERE значение > 0
) Gr2 ON Codes.Code = Gr2.Code
Вариант
SELECT
Code, SUM(f1) Sum1, SUM(f2) Sum2
FROM (
SELECT
признак as Code,
CASE WHEN значение < 0 THEN значение ELSE 0 END f1,
CASE WHEN значение > 0 THEN значение ELSE 0 END f2
FROM
Table
) Table