Здравствуйте, Sshur, Вы писали:
S>>>На MSSQL можно получить список всех колонок таблицы, написать скрипт который напишет динамический SQL, суммирующий колонки по определенному критерию. На Оракле скорее всего это тоже можно, но нафига? Ладно бы у вас было 100 колонок и в разных случаях надо было бы суммировать по разному. Для трех колонок ИМХО sum(sumdepart1+sumdepart2+sumdepart3) самое подходящее.
AS>>1. IMHO в общем случае более подходящее: ... sum(NVL(sumdepart1, 0) + NVL(sumdepart2, 0) + NVL(sumdepart3, 0)) ... (или как там NVL юзают).
S>NVL — проверка на null? топикстартер про возможные null ничего не говорил
NVL(sumdepart1, 0) — "if (sumdepart1 not is null) then return sumdepart1 else return 0"
От проектировщиков способных на вышеописанное (а позже топик стартер признался что их там 8 штук) хорошего ждать не приходиться.
AS>>2. Что будет если добавиться sumdepart4, потом sumdepart5, ..., sumdepart300? IMHO в общем случае лучше вынести sumdepart в отдельную таблицу...
S>Если их много и/или они будут добавляться — то можно попытаться сделать, чтобы они были в строках в отдельной таблице, а не в столбцах. вот тогда sum будет хорошо работать.
Я уже написал. Это я и предлагал.