powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / v8: Действие предиката ИМЕЮЩИЕ в запросе
8 сообщений из 8, страница 1 из 1
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37168363
Фотография МистерШоу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое почтение!

Любезные, просветите великодушно.
Написал запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ВЫБРАТЬ
    ЕСНДополнительныеНачисления.ПериодРегистрации,
    ЕСНДополнительныеНачисления.Результат,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСНДополнительныеНачисления.ФизЛицо) КАК ФизЛицоСч,
    МАКСИМУМ(ЕСНДополнительныеНачисления.ФизЛицо) КАК ФизЛицо
ИЗ
    РегистрРасчета.ЕСНДополнительныеНачисления КАК ЕСНДополнительныеНачисления
ГДЕ
    ЕСНДополнительныеНачисления.ВидРасчета.Наименование = "Агентское вознаграждение"

   И ЕСНДополнительныеНачисления.ПериодРегистрации МЕЖДУ &ДатаС И &ДатаПо
СГРУППИРОВАТЬ ПО
    ЕСНДополнительныеНачисления.ПериодРегистрации,
    ЕСНДополнительныеНачисления.Результат
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСНДополнительныеНачисления.ФизЛицо) =  1 

выполняю, в итоге получаю только одну запись.
Период регистрации Физлицо Физлицо_сч Результат01.11.2009 0:00:00 Евгений Игоревич 111 919.77

Обращаюсь к регистру,
смотрю исходные данные - записи две, по одному физлицу, но за разные периоды и по разным суммам.
Выполняю простой запрос без группировок, убеждаюсь в этом:

Период регистрации Физлицо Видрасчета Результат01.11.2009 0:00:00 Евгений Игоревич Агентское вознаграждение 11 919.7701.12.2009 0:00:00 Евгений Игоревич Агентское вознаграждение 277.20

Убираю в запросе с агрегацией пост-предикат ИМЕЮЩИЕ, получаю:

Период регистрации Физлицо Физлицо_сч Результат01.11.2009 0:00:00 Евгений Игоревич 1 11 919.7701.12.2009 0:00:00 Евгений Игоревич 2 277.20
Замечаю, что Физлицо_сч = 2. В каноническом SQL аналогичная агрегация
COUNT(DISTINCT ЕСНДополнительныеНачисления.ФизЛицо) вернёт значение 1,
счетчик множества значений определяется в пределах группировки по
набору
ЕСНДополнительныеНачисления.ПериодРегистрации,
ЕСНДополнительныеНачисления.Результат

Возникает ощущение, что в языке запросов 1С условие

КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСНДополнительныеНачисления.ФизЛицо) = 1

в предикате ИМЕЮЩИЕ работает как-то иначе...словно
вычисляется уже над итоговым множеством, а не в пределах группировки.
И при этом первая запись в набор попадает, но для второй записи уже
возникает превышение количества значений в пределах всего набора
записей, и она удаляется из набора. Это действительно так?

Пресветлый старец Фалоим Московскый.
тимтэг:некоммерческое товарищество "Напиджак",
издательство "Московский Пустомолец"
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37168391
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читал раз пять ничо не понял
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37168405
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может ГДЕ и ИМЕЮЩИЕ конфликтуют. вроде че-то было подобное
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37168474
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37169293
Фотография МистерШоу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый, признателен за участие. Увы -всё очевидно, сам виноват. Невнимателен.
Налицо неполная группировка, чрезмерная самоуверенность и поспешные выводы :)
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37169345
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем трабл-то был?
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37169475
Фотография МистерШоу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvmв чем трабл-то был?

как сказал - налицо неполная группировка, явно не хватает ФизЛицо.
И при этом в рабочем контексте я ведь в этом запросе параметрический отбор делал по ФЛ, а при проверке результатов
получал расхождения, поскольку вызывал приведенный запрос без отбора по ФЛ.
Очевидно, что был дубль по значению период/результат - таких ФЛ действительно двое :)
Короче, "сам дурак" :)
...
Рейтинг: 0 / 0
v8: Действие предиката ИМЕЮЩИЕ в запросе
    #37169574
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о... а то я думал что надо опять бул по хэвинг читать :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / v8: Действие предиката ИМЕЮЩИЕ в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]