Имя: Пароль:
1C
1С v8
Нужна помощь в запросе - сравнить результат выборки со значением
0 kudlach
 
13.11.17
13:25
Помогите, пожалуйста, с запросом.

ВЫБРАТЬ
Таб1.Значение1,
Таб1.Значение2
ИЗ Таб1
ГДЕ Таб1.Значение3> (ВЫБРАТЬ МАКСИэМУМ(Таб2.Значение) ИЗ Таб2)

Как организовать последнюю строчку ?
1 Широкий
 
13.11.17
13:31
В
2 vicof
 
13.11.17
13:31
Параметр
3 Ёпрст
 
13.11.17
13:31
(0)
ГДЕ Таб1.Значение3> (ВЫБРАТЬ МАКСИМУМ(Таб2.Значение) ИЗ Таб2)
4 Mankubus
 
13.11.17
13:32
(0) ВЫБРАТЬ
    МАКСИМУМ(Таб2.Значение) КАК Значение
ПОМЕСТИТЬ Таб2Макс
ИЗ
    Таб2 КАК Таб2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Таб1.Значение1,
    Таб1.Значение2
ИЗ
    Таб1 КАК Таб1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таб2Макс КАК Таб2Макс
        ПО Таб1.Значение3 > Таб2Макс.Значение
5 wondkind
 
13.11.17
13:34
(0) Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ МАКСИМУМ(Таб2.Значение) КАК Максимум ИЗ Таб2";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
   МаксЗначение = Выборка.Максимум;
КонецЕсли;

Запрос.Текст = "ВЫБРАТЬ
| Таб1.Значение1,
| Таб1.Значение2
| ИЗ Таб1
| ГДЕ Таб1.Значение3> &МаксЗначение";
Запрос.УстановитьПараметр("МаксЗначение", МаксЗначение);

РезультирующаяТаблица = Запрос.Выполнить().Выгрузить();
6 kudlach
 
13.11.17
13:37
(3) именно в таком варианте вылетает ошибка с нарушением синтексиса у (<<Ошибка>>ВЫБРАТЬ МАКСИМУМ)

(5) вааще не мой вариант

(4) думаю, рабочий вариант, но не в моем случае :(
СЕйчас подробнее напишу
7 wondkind
 
13.11.17
13:40
(6) аж даже интересно, что за условие. И почему это мой вариант, в отличии от (4) был признан не рабочим?)
8 kudlach
 
13.11.17
13:50
Это я меняю существующий переделанный отчет по взаиморасчетам с клиентами. Нужно получить сумму просроченной задолженности.
УТ 10.3. Все договоры - в разрезе Заказов.

    ТекстЗапроса =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
...
    |        КОГДА ЗапросПоВзаиморасчетам.СуммаКонечныйДолг < 0
    |            ТОГДА 0
    |        ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаКонечныйДолг
    |    КОНЕЦ КАК КонечныйДолг,
    |    ЗапросПоВзаиморасчетам.СуммаПросрочки
    |{ВЫБРАТЬ
...        
    |    СуммаКонечныйДолг}
    |    СуммаПросрочки}
    |ИЗ
    |    (ВЫБРАТЬ
...
    |        ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаКонечныйДолг,
    |        0 КАК СуммаПросрочки
    |    ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(ДоговорКонтрагента.Организация).* КАК Организация, (ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК ДокументСделка}) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
...
    |        0,
    |        ,ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток     
    |    ИЗ
    |        РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон,) КАК ВзаиморасчетыСКонтрагентамиОстатки
    |    ГДЕ
//!!!  ВОТ ЗДЕСЬ НУЖНО ПРОВЕРЯТЬ !!!//
    |                ВЫБРАТЬ        
    |
    |                    МАКСИМУМ( РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(Реализация.Дата,ДЕНЬ),НАЧАЛОПЕРИОДА(&ТекДата,ДЕНЬ),ДЕНЬ))
    |                    ИЗ Документ.РеализацияТоваровУслуг КАК Реализация
    |                    ГДЕ Реализация.Сделка=ВзаиморасчетыСКонтрагентамиОстатки.Сделка //&Сделка//
    |                        И Реализация.Проведен=ИСТИНА    
    |                > ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДнейОтсрочкиДебиторки
    |{ГДЕ
    |    ЗапросПоВзаиморасчетам.СуммаКонечныйДолг КАК СуммаКонечныйДолг,
    |    ЗапросПоВзаиморасчетам.СуммаПросрочки КАК СуммаПросрочки}
    |{УПОРЯДОЧИТЬ ПО
...
    |    СуммаКонечныйДолг,
    |    СуммаПросрочки}
    |ИТОГИ
    |    СУММА(СуммаДолга),
    |    СУММА(СуммаПросрочки)
    |ПО
    |    ОБЩИЕ,
...
    |{ИТОГИ ПО
...
    |}";
9 kudlach
 
13.11.17
14:15
На ИНфостарте дали рабочий вариант:


ВЫБРАТЬ
Т1.Значение1,
Т1.Значение2
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(Таб2.Значение) КАК Зн1 ИЗ Таб2) КАК Т2
ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Т1
ПО (Т1.Значение3 > Т2.Зн1)

Всем спасибо
10 Ёпрст
 
13.11.17
14:27
(9) это тоже самое, что и (4)
11 kudlach
 
13.11.17
15:22
(10) Оспорю.
В этом варианте нет временной таблицы.
И мне он удобнее.
12 Ёпрст
 
13.11.17
15:28
(11) гы.
ВЫБРАТЬ
    Таб1.Значение1,
    Таб1.Значение2
ИЗ
    Таб1 КАК Таб1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
ВЫБРАТЬ
    МАКСИМУМ(Таб2.Значение) КАК Значение

ИЗ
    Таб2 КАК Таб2 )как Таб2Макс


        ПО Таб1.Значение3 > Таб2Макс.Значение