Re[3]: Горизонтальный срез головного мозга
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 10.03.11 14:24
Оценка:
Здравствуйте, ASta, Вы писали:


S>>На MSSQL можно получить список всех колонок таблицы, написать скрипт который напишет динамический SQL, суммирующий колонки по определенному критерию. На Оракле скорее всего это тоже можно, но нафига? Ладно бы у вас было 100 колонок и в разных случаях надо было бы суммировать по разному. Для трех колонок ИМХО sum(sumdepart1+sumdepart2+sumdepart3) самое подходящее.


AS>1. IMHO в общем случае более подходящее: ... sum(NVL(sumdepart1, 0) + NVL(sumdepart2, 0) + NVL(sumdepart3, 0)) ... (или как там NVL юзают).


NVL — проверка на null? топикстартер про возможные null ничего не говорил

AS>2. Что будет если добавиться sumdepart4, потом sumdepart5, ..., sumdepart300? IMHO в общем случае лучше вынести sumdepart в отдельную таблицу...



Если их много и/или они будут добавляться — то можно попытаться сделать, чтобы они были в строках в отдельной таблице, а не в столбцах. вот тогда sum будет хорошо работать.
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.