Вопрос по СКД (обнуление строки)

1. user594620_delpiero1488 22.05.18 10:05 Сейчас в теме
Добрый день! Поджскажите пожалуйста как в отчете СКД прописать если строка пустая то неделать расчет по этой строке.




ВЫБОР
	КОГДА СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО
			ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL
		ТОГДА 0
	ИНАЧЕ "расчет"
КОНЕЦ

Показать



Скрин выложил - как убрать расчет напротив строки пустой, чтоб она тоже пустая была?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. yalex9 106 22.05.18 10:18 Сейчас в теме
Запрос нужно смотреть, чтобы понять что там может быть в "СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам".

Но если ещё включить в условие проверку на 0(ноль) и пустую строку, то точно, исключит:)

ВЫБОР
    КОГДА СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО
            ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL
            ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0
            ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = """
        ТОГДА 0
    ИНАЧЕ "расчет"
КОНЕЦ
10. VmvLer 22.05.18 12:16 Сейчас в теме
(9) ИЛИ очень часто приводит к не оптимальному плану запроса. Когда записей миллиарды - это сразу ощутимо.

Посему лучше взять за правило заменять ИЛИ в запросе на более "приятную" СУБД конструкцию.

для ВЫБОР на
Истина В (УсловиеИЛИ_1,... УсловиеИЛИ_N)


для ГДЕ на
ВЫБОР 1 В (
                       ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_1
                       ОБЪЕДИНИТЬ ВСЕ                       
                       ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_2 
                       ......
                       ОБЪЕДИНИТЬ ВСЕ                        
                       ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_N)


такие конструкции более "понятны" и СУБД и человеку.
А от скопление ИЛИ только рябь в глазах и тормоза.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. VmvLer 22.05.18 11:14 Сейчас в теме
(1) не используйте ИЛИ в запросах

в вашем случае лучше так

ВЫБРАТЬ
	СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам КАК ПФРНаДоплатуШахтерам,
	ВЫБОР
		КОГДА ИСТИНА В (СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = "")
			ТОГДА 0
		ИНАЧЕ "Расчет"
	КОНЕЦ КАК Доплата
ИЗ
	СтраховыеВзносыПоФизическимЛицам КАК СтраховыеВзносыПоФизическимЛицам
Показать
9. user594620_delpiero1488 22.05.18 11:23 Сейчас в теме
(7)
ВЫБОР КОГДА ИСТИНА В (СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = "") ТОГДА 0 ИНАЧЕ "Расчет"



почему неиспользовать?,да у вас код тоже работает
10. VmvLer 22.05.18 12:16 Сейчас в теме
(9) ИЛИ очень часто приводит к не оптимальному плану запроса. Когда записей миллиарды - это сразу ощутимо.

Посему лучше взять за правило заменять ИЛИ в запросе на более "приятную" СУБД конструкцию.

для ВЫБОР на
Истина В (УсловиеИЛИ_1,... УсловиеИЛИ_N)


для ГДЕ на
ВЫБОР 1 В (
                       ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_1
                       ОБЪЕДИНИТЬ ВСЕ                       
                       ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_2 
                       ......
                       ОБЪЕДИНИТЬ ВСЕ                        
                       ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_N)


такие конструкции более "понятны" и СУБД и человеку.
А от скопление ИЛИ только рябь в глазах и тормоза.
2. yalex9 106 22.05.18 10:18 Сейчас в теме
Запрос нужно смотреть, чтобы понять что там может быть в "СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам".

Но если ещё включить в условие проверку на 0(ноль) и пустую строку, то точно, исключит:)

ВЫБОР
    КОГДА СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО
            ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL
            ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0
            ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = """
        ТОГДА 0
    ИНАЧЕ "расчет"
КОНЕЦ
3. user594620_delpiero1488 22.05.18 10:39 Сейчас в теме
спасибо да помогло надо было все вырианты использовать походу:)
4. user594620_delpiero1488 22.05.18 10:43 Сейчас в теме
кстати заодно спрошу, можно как нибудь где колонка доплата шахтерам прописать название колонки "Доплата шахтерам 6%" цифры в название колонки он недает писать()
6. yalex9 106 22.05.18 10:46 Сейчас в теме
(4) Можно. На закладке "Настройка" правой кнопкой мыши по выбранному полю - установить загловок
8. user594620_delpiero1488 22.05.18 11:18 Сейчас в теме
(6) нашел тут сам
Прикрепленные файлы:
5. yalex9 106 22.05.18 10:43 Сейчас в теме
Скорее всего, условий на ноль и NULL достаточно
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот