Запрос с использованием оператора выбора не объединяет в одну строку
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 2 из 2
  1. #1
    Гость форума

    Регистрация
    14.03.2023
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    Question Запрос с использованием оператора выбора не объединяет в одну строку

    Запрос с использованием оператора выбора не объединяет в одну строку, вот весь запрос:

    Код:
    ВЫБРАТЬ
        ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        ИсторияНачисленийПоШтатномуРасписанию.Дата КАК Дата,
        ИсторияПоказателейПоШтатномуРасписанию.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания1,
        ИсторияПоказателейПоШтатномуРасписанию.Дата КАК Дата1,
        ИсторияНачисленийПоШтатномуРасписанию.Начисление КАК Начисление,
        ИсторияПоказателейПоШтатномуРасписанию.Показатель КАК Показатель,
        ИсторияНачисленийПоШтатномуРасписанию.Размер КАК Размер,
        ИсторияПоказателейПоШтатномуРасписанию.Значение КАК Значение,
        ИсторияПоказателейПоШтатномуРасписанию.ПозицияШтатногоРасписания.Подразделение КАК ПозицияШтатногоРасписанияПодразделение,
        ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания.Должность КАК ПозицияШтатногоРасписанияДолжность,
        ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания.КоличествоСтавок КАК ПозицияШтатногоРасписанияКоличествоСтавок,
        ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания.РазрядКатегория КАК ПозицияШтатногоРасписанияРазрядКатегория,
        ИсторияПоказателейПоШтатномуРасписанию.ПозицияШтатногоРасписания.РазрядКатегория КАК ПозицияШтатногоРасписанияРазрядКатегория1,
        ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания.РазрядКатегория.Коэффициент КАК ПозицияШтатногоРасписанияРазрядКатегорияКоэффициент,
        ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания.ФОТ КАК ПозицияШтатногоРасписанияФОТ,
        ИсторияПоказателейПоШтатномуРасписанию.ПозицияШтатногоРасписания.ФОТУправленческий КАК ПозицияШтатногоРасписанияФОТУправленческий,
        ИсторияНачисленийПоШтатномуРасписанию.Размер КАК Размер1,
        ИсторияПоказателейПоШтатномуРасписанию.Значение КАК Значение1,
        ИсторияПоказателейПоШтатномуРасписанию.НомерСтроки КАК НомерСтроки,
        ИсторияНачисленийПоШтатномуРасписанию.НомерСтроки КАК НомерСтроки1
    ПОМЕСТИТЬ ДанныеРС
    ИЗ
        РегистрСведений.ИсторияНачисленийПоШтатномуРасписанию КАК ИсторияНачисленийПоШтатномуРасписанию
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияПоказателейПоШтатномуРасписанию КАК ИсторияПоказателейПоШтатномуРасписанию
            ПО ИсторияНачисленийПоШтатномуРасписанию.Дата = ИсторияПоказателейПоШтатномуРасписанию.Дата
                И ИсторияНачисленийПоШтатномуРасписанию.Регистратор = ИсторияПоказателейПоШтатномуРасписанию.Регистратор
                И ИсторияНачисленийПоШтатномуРасписанию.ИдентификаторСтрокиВидаРасчета = ИсторияПоказателейПоШтатномуРасписанию.ИдентификаторСтрокиВидаРасчета
    ГДЕ
        ИсторияПоказателейПоШтатномуРасписанию.Дата <= &ДатаКонец
        И ИсторияПоказателейПоШтатномуРасписанию.Активность = ИСТИНА
        И ИсторияНачисленийПоШтатномуРасписанию.Дата <= &ДатаКонец
        И ИсторияНачисленийПоШтатномуРасписанию.Активность = ИСТИНА
        И ИсторияПоказателейПоШтатномуРасписанию.ПозицияШтатногоРасписания.Подразделение.Наименование = "Столовая"
        И ИсторияНачисленийПоШтатномуРасписанию.ПозицияШтатногоРасписания.РазрядКатегория.Наименование <> ""
    ;
    
    ////////////////////////////////////////////////////////////*////////////////////
    ВЫБРАТЬ
        ДанныеРС.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        МАКСИМУМ(ДанныеРС.Дата) КАК Дата
    ПОМЕСТИТЬ ДанныеГруппировки
    ИЗ
        ДанныеРС КАК ДанныеРС
    
    СГРУППИРОВАТЬ ПО
        ДанныеРС.ПозицияШтатногоРасписания
    ;
    
    ////////////////////////////////////////////////////////////*////////////////////
    ВЫБРАТЬ
        ДанныеРС.ПозицияШтатногоРасписанияДолжность КАК Должность,
        ДанныеРС.ПозицияШтатногоРасписанияКоличествоСтавок КАК КоличествоСтавок,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование = "Сдельный заработок (для работающих по окладу)"
                    ИЛИ ДанныеРС.Начисление.Наименование = "Сдельный заработок (для работающих по часовому тарифу)"
                ТОГДА "СД"
            КОГДА ДанныеРС.Показатель.Наименование ПОДОБНО "%Процент%"
                ТОГДА ""
            ИНАЧЕ "П"
        КОНЕЦ КАК ФОТ,
        ДанныеРС.ПозицияШтатногоРасписанияРазрядКатегория КАК Тариф,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование = "Сдельный заработок (для работающих по окладу)"
                ТОГДА ДанныеРС.ПозицияШтатногоРасписанияРазрядКатегорияКоэффициент
        КОНЕЦ КАК Коэффициент,
        ВЫБОР
            КОГДА НЕ ДанныеРС.Показатель.Наименование ПОДОБНО "%Процент%"
                    И НЕ ДанныеРС.Начисление.Наименование = "Сдельный заработок (для работающих по окладу)"
                ТОГДА ДанныеРС.Значение
        КОНЕЦ КАК Значение,
        ВЫБОР
            КОГДА НЕ ДанныеРС.Показатель.Наименование ПОДОБНО "%Процент%"
                    И ДанныеРС.Начисление.Наименование = "Сдельный заработок (для работающих по окладу)"
                ТОГДА ДанныеРС.Размер
        КОНЕЦ КАК Размер,
        ВЫБОР
            КОГДА ДанныеРС.Показатель.Наименование ПОДОБНО "%Процент%"
                    И ДанныеРС.Начисление.Наименование = "за работу по контрактной форме найма"
                ТОГДА ДанныеРС.Значение
        КОНЕЦ КАК ЗначениеПроцентКонтракт,
        ВЫБОР
            КОГДА ДанныеРС.Показатель.Наименование ПОДОБНО "%Процент%"
                    И НЕ ДанныеРС.Начисление.Наименование = "за работу по контрактной форме найма"
                ТОГДА ДанныеРС.Значение
        КОНЕЦ КАК ЗначениеПроцент,
        ДанныеРС.Начисление.Наименование КАК ФОТ1,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за работу по контрактной форме найма%"
                ТОГДА ДанныеРС.Начисление.Наименование
        КОНЕЦ КАК ФОТ1Контракт,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за характер и специфику выполняемой работы%"
                ТОГДА ДанныеРС.Начисление.Наименование
        КОНЕЦ КАК ФОТ1Характер,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за характер и специфику выполняемой работы%"
                ТОГДА ДанныеРС.Значение
        КОНЕЦ КАК ЗначениеХарактерт,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за работу на открытом воздухе%"
                ТОГДА ДанныеРС.Начисление.Наименование
        КОНЕЦ КАК ФОТ1ОткрытыйВоздух,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за работу на открытом воздухе%"
                ТОГДА ДанныеРС.Значение
        КОНЕЦ КАК ЗначениеОткрытыйВоздух,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за квалификационную категорию%"
                ТОГДА ДанныеРС.Начисление.Наименование
        КОНЕЦ КАК ФОТ1Категорию,
        ВЫБОР
            КОГДА ДанныеРС.Начисление.Наименование ПОДОБНО "%за квалификационную категорию%"
                ТОГДА ДанныеРС.Значение
        КОНЕЦ КАК ЗначениеКатегория,
        ДанныеГруппировки.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        ДанныеГруппировки.Дата КАК Дата,
        ДанныеРС.Показатель.Наименование КАК ПоказательНаименование,
        ДанныеРС.ПозицияШтатногоРасписанияПодразделение КАК ПозицияШтатногоРасписанияПодразделение,
        ДанныеРС.ПозицияШтатногоРасписанияФОТ КАК ПозицияШтатногоРасписанияФОТ,
        ДанныеРС.ПозицияШтатногоРасписанияФОТУправленческий КАК ПозицияШтатногоРасписанияФОТУправленческий,
        ДанныеРС.Размер1 КАК Размер1,
        ДанныеРС.Значение1 КАК Значение1,
        ДанныеРС.НомерСтроки КАК НомерСтроки,
        ДанныеРС.НомерСтроки1 КАК НомерСтроки1
    ПОМЕСТИТЬ ВТ_ФОТ
    ИЗ
        ДанныеГруппировки КАК ДанныеГруппировки
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеРС КАК ДанныеРС
            ПО ДанныеГруппировки.ПозицияШтатногоРасписания = ДанныеРС.ПозицияШтатногоРасписания
                И ДанныеГруппировки.Дата = ДанныеРС.Дата
    ;
    
    ////////////////////////////////////////////////////////////*////////////////////
    ВЫБРАТЬ
        ВТ_ФОТ.Должность КАК Должность,
        ВТ_ФОТ.КоличествоСтавок КАК КоличествоСтавок,
        ВТ_ФОТ.Тариф КАК Тариф,
        МАКСИМУМ(ВТ_ФОТ.ФОТ) КАК ФОТ,
        МАКСИМУМ(ВТ_ФОТ.ФОТ1Категорию) КАК ФОТ1Категорию,
        МАКСИМУМ(ВТ_ФОТ.ФОТ1ОткрытыйВоздух) КАК ФОТ1ОткрытыйВоздух,
        МАКСИМУМ(ВТ_ФОТ.ФОТ1Характер) КАК ФОТ1Характер,
        МАКСИМУМ(ВТ_ФОТ.ФОТ1Контракт) КАК ФОТ1Контракт,
        СУММА(ЕСТЬNULL(ВТ_ФОТ.Коэффициент, 0)) КАК Коэффициент,
        СУММА(ЕСТЬNULL(ВТ_ФОТ.Значение, 0)) КАК Значение,
        СУММА(ЕСТЬNULL(ВТ_ФОТ.Размер, 0)) КАК Размер,
        СУММА(ЕСТЬNULL(ВТ_ФОТ.ЗначениеПроцентКонтракт, 0)) КАК ЗначениеПроцентКонтракт,
        СУММА(ЕСТЬNULL(ВТ_ФОТ.ЗначениеПроцент, 0)) КАК ЗначениеПроцент,
        МАКСИМУМ(ВТ_ФОТ.ЗначениеХарактерт) КАК ЗначениеХарактерт,
        МАКСИМУМ(ВТ_ФОТ.ЗначениеОткрытыйВоздух) КАК ЗначениеОткрытыйВоздух,
        МАКСИМУМ(ВТ_ФОТ.ЗначениеКатегория) КАК ЗначениеКатегория,
        ВТ_ФОТ.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        ВТ_ФОТ.Дата КАК Дата
    ПОМЕСТИТЬ ВТ_Рас
    ИЗ
        ВТ_ФОТ КАК ВТ_ФОТ
    
    СГРУППИРОВАТЬ ПО
        ВТ_ФОТ.Должность,
        ВТ_ФОТ.КоличествоСтавок,
        ВТ_ФОТ.Тариф,
        ВТ_ФОТ.ПозицияШтатногоРасписания,
        ВТ_ФОТ.Дата
    ;
    
    ////////////////////////////////////////////////////////////*////////////////////
    ВЫБРАТЬ
        ВТ_Рас.Должность КАК Должность,
        ВТ_Рас.КоличествоСтавок КАК КоличествоСтавок,
        ВТ_Рас.Тариф КАК Тариф,
        ВТ_Рас.Коэффициент КАК Коэффициент,
        ВТ_Рас.Значение КАК Значение,
        ВТ_Рас.Размер КАК Размер,
        ВТ_Рас.ЗначениеПроцентКонтракт КАК ЗначениеПроцентКонтракт,
        ВТ_Рас.ЗначениеПроцент КАК ЗначениеПроцент,
        ВЫРАЗИТЬ(ВТ_Рас.Размер * (1 + ВТ_Рас.ЗначениеПроцентКонтракт / 100 + ВТ_Рас.ЗначениеПроцент / 100) КАК ЧИСЛО(15, 2)) КАК Ставка,
        ВЫРАЗИТЬ(ВТ_Рас.Значение * (1 + ВТ_Рас.ЗначениеПроцентКонтракт / 100 + ВТ_Рас.ЗначениеПроцент / 100) КАК ЧИСЛО(15, 2)) КАК СтавкаЧас,
        ВЫБОР
            КОГДА ВТ_Рас.Размер * (1 + ВТ_Рас.ЗначениеПроцентКонтракт / 100 + ВТ_Рас.ЗначениеПроцент / 100) = 0
                ТОГДА ВТ_Рас.Значение * (1 + ВТ_Рас.ЗначениеПроцентКонтракт / 100 + ВТ_Рас.ЗначениеПроцент / 100) * 167.83
            ИНАЧЕ ВТ_Рас.Размер * (1 + ВТ_Рас.ЗначениеПроцентКонтракт / 100 + ВТ_Рас.ЗначениеПроцент / 100)
        КОНЕЦ КАК Сумма,
        ВТ_Рас.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        ВТ_Рас.ФОТ КАК ФОТ,
        ВТ_Рас.ЗначениеХарактерт КАК ЗначениеХарактерт,
        ВТ_Рас.ЗначениеОткрытыйВоздух КАК ЗначениеОткрытыйВоздух,
        ВТ_Рас.ЗначениеКатегория КАК ЗначениеКатегория,
        ВТ_Рас.ФОТ1Категорию КАК ФОТ1Категорию,
        ВТ_Рас.ФОТ1ОткрытыйВоздух КАК ФОТ1ОткрытыйВоздух,
        ВТ_Рас.ФОТ1Характер КАК ФОТ1Характер,
        ВТ_Рас.ФОТ1Контракт КАК ФОТ1Контракт
    ПОМЕСТИТЬ ВТ_Итоги
    ИЗ
        ВТ_Рас КАК ВТ_Рас
    ;
    
    ////////////////////////////////////////////////////////////*////////////////////
    ВЫБРАТЬ
        ВТ_Итоги.Должность КАК Должность,
        ВТ_Итоги.КоличествоСтавок КАК КоличествоСтавок,
        ВТ_Итоги.ФОТ КАК ФОТ,
        ВТ_Итоги.Тариф КАК Тариф,
        ВТ_Итоги.Коэффициент КАК Коэффициент,
        ВТ_Итоги.Значение КАК Значение,
        ВТ_Итоги.Размер КАК Размер,
        ВТ_Итоги.ЗначениеПроцентКонтракт КАК ЗначениеПроцентКонтракт,
        ВТ_Итоги.ЗначениеПроцент КАК ЗначениеПроцент,
        ВТ_Итоги.Ставка КАК Ставка,
        ВТ_Итоги.СтавкаЧас КАК СтавкаЧас,
        ВЫРАЗИТЬ(ВТ_Итоги.Сумма КАК ЧИСЛО(15, 2)) КАК Сумма,
        ВТ_Итоги.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        ВЫБОР
            КОГДА ВТ_Итоги.ФОТ = "П"
                ТОГДА ВТ_Итоги.КоличествоСтавок
        КОНЕЦ КАК ФОТ_П,
        ВЫБОР
            КОГДА ВТ_Итоги.ФОТ = "СД"
                ТОГДА ВТ_Итоги.КоличествоСтавок
        КОНЕЦ КАК ФОТ_СД,
        ВЫБОР
            КОГДА ВТ_Итоги.ФОТ = "П"
                ТОГДА ВТ_Итоги.Сумма
        КОНЕЦ КАК Сумма_П,
        ВЫБОР
            КОГДА ВТ_Итоги.ФОТ = "СД"
                ТОГДА ВТ_Итоги.Сумма
        КОНЕЦ КАК Сумма_СД,
        ВТ_Итоги.КоличествоСтавок КАК КоличествоСтавокСумма,
        ВТ_Итоги.Сумма КАК СуммаСумма,
        ВТ_Итоги.Ставка КАК СтавкаСумма,
        ВТ_Итоги.СтавкаЧас КАК СтавкаЧасСумма,
        ВТ_Итоги.ЗначениеХарактерт КАК ЗначениеХарактерт,
        ВТ_Итоги.ЗначениеОткрытыйВоздух КАК ЗначениеОткрытыйВоздух,
        ВТ_Итоги.ЗначениеКатегория КАК ЗначениеКатегория,
        ВТ_Итоги.ФОТ1Категорию КАК ФОТ1Категорию,
        ВТ_Итоги.ФОТ1ОткрытыйВоздух КАК ФОТ1ОткрытыйВоздух,
        ВТ_Итоги.ФОТ1Характер КАК ФОТ1Характер,
        ВТ_Итоги.ФОТ1Контракт КАК ФОТ1Контракт
    ПОМЕСТИТЬ ФТ_Финал
    ИЗ
        ВТ_Итоги КАК ВТ_Итоги
    ;
    
    ////////////////////////////////////////////////////////////*////////////////////
    ВЫБРАТЬ
        ФТ_Финал.Должность КАК Должность,
        ФТ_Финал.КоличествоСтавок КАК КоличествоСтавок,
        ФТ_Финал.ФОТ КАК ФОТ,
        ФТ_Финал.Тариф КАК Тариф,
        ФТ_Финал.Коэффициент КАК Коэффициент,
        ФТ_Финал.Значение КАК Значение,
        ФТ_Финал.Размер КАК Размер,
        ФТ_Финал.ЗначениеПроцентКонтракт КАК ЗначениеПроцентКонтракт,
        ФТ_Финал.ЗначениеПроцент КАК ЗначениеПроцент,
        ФТ_Финал.Ставка КАК Ставка,
        ФТ_Финал.СтавкаЧас КАК СтавкаЧас,
        ФТ_Финал.Сумма КАК Сумма,
        ФТ_Финал.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
        ФТ_Финал.ФОТ_П КАК ФОТ_П,
        ФТ_Финал.ФОТ_СД КАК ФОТ_СД,
        ВЫРАЗИТЬ(ФТ_Финал.Сумма_П КАК ЧИСЛО(15, 2)) КАК Сумма_П,
        ВЫРАЗИТЬ(ФТ_Финал.Сумма_СД КАК ЧИСЛО(15, 2)) КАК Сумма_СД,
        ФТ_Финал.КоличествоСтавокСумма КАК КоличествоСтавокСумма,
        ВЫРАЗИТЬ(ФТ_Финал.СуммаСумма КАК ЧИСЛО(15, 2)) КАК СуммаСумма,
        ФТ_Финал.СтавкаСумма КАК СтавкаСумма,
        ФТ_Финал.СтавкаЧасСумма КАК СтавкаЧасСумма,
        ФТ_Финал.ЗначениеХарактерт КАК ЗначениеХарактер,
        ФТ_Финал.ЗначениеОткрытыйВоздух КАК ЗначениеОткрытыйВоздух,
        ФТ_Финал.ЗначениеКатегория КАК ЗначениеКатегория,
        ФТ_Финал.ФОТ1Категорию КАК ФОТ1Категорию,
        ФТ_Финал.ФОТ1ОткрытыйВоздух КАК ФОТ1ОткрытыйВоздух,
        ФТ_Финал.ФОТ1Характер КАК ФОТ1Характер,
        ФТ_Финал.ФОТ1Контракт КАК ФОТ1Контракт,
        ВЫБОР
            КОГДА ФТ_Финал.ЗначениеХарактерт <> 0
                    ИЛИ ФТ_Финал.ЗначениеОткрытыйВоздух <> 0
                    ИЛИ ФТ_Финал.ЗначениеКатегория <> 0
                ТОГДА ФТ_Финал.ФОТ1Категорию + ФТ_Финал.ФОТ1ОткрытыйВоздух + ФТ_Финал.ФОТ1Характер
        КОНЕЦ КАК Свойства
    ИЗ
        ФТ_Финал КАК ФТ_Финал

    Вот эта часть не хочет работать:

    Код:
    ВЫБОР
            КОГДА ФТ_Финал.ЗначениеХарактерт <> 0
                    ИЛИ ФТ_Финал.ЗначениеОткрытыйВоздух <> 0
                    ИЛИ ФТ_Финал.ЗначениеКатегория <> 0
                ТОГДА ФТ_Финал.ФОТ1Категорию + ФТ_Финал.ФОТ1ОткрытыйВоздух + ФТ_Финал.ФОТ1Характер
        КОНЕЦ КАК Свойства

    Этот запрос использует оператор выбора, чтобы проверить значения трех полей (ЗначениеХарактерт, ЗначениеОткрытыйВоздух и ЗначениеКатегория) и, если хотя бы одно из них не равно 0, то объединить значения других трех полей (ФОТ1Категорию, ФОТ1ОткрытыйВоздух и ФОТ1Характер) в одну строку и вернуть ее в столбце с псевдонимом "Свойства".

  2. #2
    Пришел за помощью

    Регистрация
    16.10.2019
    Сообщений
    7
    Сказал(а) спасибо
    6
    Поблагодарили 70 раз(а) в 12 сообщениях

    По умолчанию Re: Запрос с использованием оператора выбора не объединяет в одну строку

    Почему Вы не рассматриваете значение NULL?

Похожие темы

  1. Представить строку артикулов в виде списка
    от Shouldercannon в разделе Конфигурирование, программирование 1С - Предприятие
    Ответов: 0
    Последнее сообщение: 07.01.2021, 18:34
  2. Автоматически добавить строку в табличной части
    от TumJan в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 0
    Последнее сообщение: 16.08.2019, 12:48
  3. Написать 1 запрос с использованием построителя 1С 8.2
    от Skupidom в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 1
    Последнее сообщение: 10.05.2017, 08:58
  4. вытянуть строку с сайта
    от denismi в разделе Прикладное программирование
    Ответов: 0
    Последнее сообщение: 25.03.2009, 19:28

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •