Может просто мысли вслух, но тем не менее улыбнуло такое вот самокопание:-)
Сходу на полуторке не получилось, на двойке не проверял :-(
Чудес не ожидал, но хотелось, чтоб получилось.
1) Запрос типа такого (смысл - подмена диапазонов значений одного поля и
суммирование других полей таблицы с группировкой по подмененному значению)
SELECT
CASE
WHEN (r.RDB$RELATION_ID <100 ) THEN 0
ELSE 1
END ID,
SUM(r.RDB$FIELD_ID)
FROM RDB$RELATIONS r
GROUP BY ID
вообще ошибку дал - неверное поле ID (ага, значит нельзя так... А почему,
собственно?)
2) В варианте с
GROUP BY r.RDB$RELATION_ID
вернул кучу записей вместо ожидаемых двух (ведь ID после CASE ожидается или 0
или 1). Ну, тут я, наверное, подсознательно понимаю, почему.
3) Однако, третья попытка модификации запроса удалась: стоило написать
GROUP BY 1
и все встало на свои места - две записи в результате (с ID=0 и ID=1)
Раскройте глаза, пжалста, почему оно именно ТАК? Понедельник - день тяжелый, не
догоняю, почему мне не пришло в голову написать запрос сразу как в варианте три
и почему первый вариант меня послал лесом?... :-)
--
Regards,
Ovchinnikov Vasily
ova at tkvc ru