Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 08:18

Помогите с запросом

Автор Игорь_M, 15 мая 2015, 17:31

0 Пользователей и 2 гостей просматривают эту тему.

Игорь_M

Помогите с запросом. Имеется Таблица как во вложении. Требуется Выбрать строки, в которых
Если ПолучениеВДеньПоездки = Истина  Тогда
   Выбрать те строки в которых ПриходУПостащика > ДатаПоездки
Иначе
    Выбрать те строки в которых ПриходУПостащика <= ДатаПоездки

Это можно сделать Запросом?

Kironten

Цитата: Игорь_M от 15 мая 2015, 17:31
Помогите с запросом. Имеется Таблица как во вложении. Требуется Выбрать строки, в которых
Если ПолучениеВДеньПоездки = Истина  Тогда
   Выбрать те строки в которых ПриходУПостащика > ДатаПоездки
Иначе
    Выбрать те строки в которых ПриходУПостащика <= ДатаПоездки

Это можно сделать Запросом?

По-моему, как то так:
Выбрать
ВТ.*
Из ВТ_Таблица КАК ВТ
ГДЕ
    ВЫБОР
        КОГДА ВТ.ПолучениеВДеньПоездки = Истина
        ТОГДА ВТ.ПриходУПостащика > ВТДатаПоездки
        ИНАЧЕ ВТ.ПриходУПостащика <= ВТ.ДатаПоездки
    КОНЕЦ

Игорь_M

спасибо , не знал что ВЫБОР можно использовать и в ГДЕ

LexaK

еще вариант


Выбрать
ВТ.*
Из ВТ_Таблица КАК ВТ
ГДЕ
    ( ВТ.ПолучениеВДеньПоездки = Истина
    и ВТ.ПриходУПостащика > ВТДатаПоездки )
или
    ( ВТ.ПолучениеВДеньПоездки = Ложь
    и ВТ.ПриходУПостащика <= ВТ.ДатаПоездки )

если помогло нажмите: Спасибо!

Игорь_M

спасибо, это готово
как мне теперь полученную таблицу разбить на Поле Поставщик, а все остальные поля засунуть в ТаблицуЗначений . Чтобы итог был типа вот этого -
Таблица.Поставщик
Таблица.(Номенклатура , Количество, ЕдИзм, ПриходУПоставщика)
Добавлено: 15 мая 2015, 20:27




еще сюрприз - в консоли запрос выполняется, а когда вставляю в ДинамическийСписок на Форме -ругается :
Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Поле не найдено "ЕдИзм"
обработал NULL - тоже самое. Что это такое?
Добавлено: 15 мая 2015, 21:19


текст итого:
ВЫБРАТЬ
СчетОтПоставщика.Поставщик КАК Поставщик,
СчетОтПоставщикаСоставСчета.Номенклатура КАК Номенклатура,
СчетОтПоставщикаСоставСчета.Количество КАК Количество,
СчетОтПоставщикаСоставСчета.ЕдИзм КАК ЕдИзм,
СчетОтПоставщикаСоставСчета.ПриходУПоставщика КАК ПриходУПоставщика
ПОМЕСТИТЬ Таблица
ИЗ
Документ.ПоступлениеТоваровУслуг.ПоСчетам КАК ПоступлениеТоваровУслугПоСчетам,
Документ.СчетОтПоставщика.СоставСчета КАК СчетОтПоставщикаСоставСчета
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетОтПоставщика КАК СчетОтПоставщика
ПО СчетОтПоставщикаСоставСчета.Ссылка = СчетОтПоставщика.Ссылка
ГДЕ
СчетОтПоставщика.Ссылка <> ПоступлениеТоваровУслугПоСчетам.Счет.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки,
ПоездкаПоставщики.Поставщик,
ПоездкаПоставщики.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки
ПОМЕСТИТЬ Таблица1
ИЗ
Документ.Поездка.Поставщики КАК ПоездкаПоставщики
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка
ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка

СГРУППИРОВАТЬ ПО
ПоездкаПоставщики.Поставщик,
ПоездкаПоставщики.ПолучениеВДеньПоездки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки,
ПоездкаПоставщики.Поставщик
ПОМЕСТИТЬ Таб1
ИЗ
Документ.Поездка.Поставщики КАК ПоездкаПоставщики
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка
ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка

СГРУППИРОВАТЬ ПО
ПоездкаПоставщики.Поставщик
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВложЗапрос.Поставщик,
ВложЗапрос.ДатаПоездки,
ВложЗапрос.ПолучениеВДеньПоездки,
ЕСТЬNULL(ВложЗапрос.Дата2,ДАТАВРЕМЯ(2001,01,01)) КАК Дата2
ПОМЕСТИТЬ Таб
ИЗ
(ВЫБРАТЬ
Таблица1.ДатаПоездки КАК ДатаПоездки,
Таблица1.Поставщик КАК Поставщик,
Таблица1.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки,
ЕСТЬNULL(Таб1.ДатаПоездки,0) КАК Дата2
ИЗ
Таблица1 КАК Таблица1
ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
ПО Таблица1.ДатаПоездки = Таб1.ДатаПоездки
И Таблица1.Поставщик = Таб1.Поставщик) КАК ВложЗапрос
ГДЕ
ВложЗапрос.Дата2 <> 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Таблица.Поставщик КАК Поставщик,
Таблица.Номенклатура КАК Номенклатура,
Таблица.Количество КАК Количество,
Таблица.ЕдИзм КАК ЕдИзм,
Таблица.ПриходУПоставщика КАК ПриходУПоставщика,
Таб.ДатаПоездки,
Таб.ПолучениеВДеньПоездки
ПОМЕСТИТЬ ВТ_Таблица
ИЗ
Таблица КАК Таблица
ЛЕВОЕ СОЕДИНЕНИЕ Таб КАК Таб
ПО Таблица.Поставщик = Таб.Поставщик
;
ВЫБРАТЬ
ВТ_Таблица.Поставщик КАК Поставщик,
ВТ_Таблица.Номенклатура КАК Номенклатура,
ВТ_Таблица.Количество КАК Количество,
ВТ_Таблица.ЕдИзм КАК ЕдИзм,
ВТ_Таблица.ПриходУПоставщика КАК ПриходУПоставщика
ИЗ ВТ_Таблица КАК ВТ_Таблица
ГДЕ
    ВЫБОР
        КОГДА ВТ_Таблица.ПолучениеВДеньПоездки = Истина
        ТОГДА ВТ_Таблица.ПриходУПоставщика <= ВТ_Таблица.ДатаПоездки
        ИНАЧЕ ВТ_Таблица.ПриходУПоставщика > ВТ_Таблица.ДатаПоездки
    КОНЕЦ


Чего не так-то?
Добавлено: 15 мая 2015, 22:44


последовательно удалил запросы. осталось вот это:
ВЫБРАТЬ
МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки,
ПоездкаПоставщики.Поставщик,
ПоездкаПоставщики.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки
ПОМЕСТИТЬ Таблица1
ИЗ
Документ.Поездка.Поставщики КАК ПоездкаПоставщики
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка
ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка

СГРУППИРОВАТЬ ПО
ПоездкаПоставщики.Поставщик,
ПоездкаПоставщики.ПолучениеВДеньПоездки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки,
ПоездкаПоставщики.Поставщик
ПОМЕСТИТЬ Таб1
ИЗ
Документ.Поездка.Поставщики КАК ПоездкаПоставщики
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка
ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка

СГРУППИРОВАТЬ ПО
ПоездкаПоставщики.Поставщик
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Таблица1.ДатаПоездки КАК ДатаПоездки,
Таблица1.Поставщик КАК Поставщик,
Таблица1.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки,
ЕСТЬNULL(Таб1.ДатаПоездки,0) КАК Дата2
ИЗ
Таблица1 КАК Таблица1
ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
ПО Таблица1.ДатаПоездки = Таб1.ДатаПоездки
И Таблица1.Поставщик = Таб1.Поставщик


на первый и второй не ругается, вываливается когда добавляю третий : Поле не найдено ДатаПоездки

vitasw

Цитата: Игорь_M от 15 мая 2015, 19:18ПОМЕСТИТЬ Таблица ИЗ Документ.ПоступлениеТоваровУслуг.ПоСчетам КАК ПоступлениеТоваровУслугПоСчетам, Документ.СчетОтПоставщика.СоставСчета КАК СчетОтПоставщикаСоставСчета

Это как понимать?

Игорь_M

это к этому:
ГДЕ
   СчетОтПоставщика.Ссылка <> ПоступлениеТоваровУслугПоСчетам.Счет.Ссылка
если я правильно понял вопрос , ... в любом случае конструктором же делал.

последовательно удалил запросы. осталось вот это:


ВЫБРАТЬ
    МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки,
    ПоездкаПоставщики.Поставщик,
    ПоездкаПоставщики.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки
ПОМЕСТИТЬ Таблица1
ИЗ
    Документ.Поездка.Поставщики КАК ПоездкаПоставщики
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка
        ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка

СГРУППИРОВАТЬ ПО
    ПоездкаПоставщики.Поставщик,
    ПоездкаПоставщики.ПолучениеВДеньПоездки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки,
    ПоездкаПоставщики.Поставщик
ПОМЕСТИТЬ Таб1
ИЗ
    Документ.Поездка.Поставщики КАК ПоездкаПоставщики
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка
        ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка

СГРУППИРОВАТЬ ПО
    ПоездкаПоставщики.Поставщик
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
        Таблица1.ДатаПоездки КАК ДатаПоездки,
        Таблица1.Поставщик КАК Поставщик,
        Таблица1.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки,
        ЕСТЬNULL(Таб1.ДатаПоездки,0) КАК Дата2
    ИЗ
        Таблица1 КАК Таблица1
            ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
            ПО Таблица1.ДатаПоездки = Таб1.ДатаПоездки
                И Таблица1.Поставщик = Таб1.Поставщик


на первый и второй не ругается, вываливается когда добавляю третий : Поле не найдено ДатаПоездки
Добавлено: 16 мая 2015, 11:38


ОТВЕТ -  Динамический список не поддерживает пакеные запросы

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск