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

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

Код: 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
16.03.2011, 17:46
    #37168391
tvm
tvm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v8: Действие предиката ИМЕЮЩИЕ в запросе
читал раз пять ничо не понял
...
Рейтинг: 0 / 0
16.03.2011, 17:50
    #37168405
tvm
tvm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v8: Действие предиката ИМЕЮЩИЕ в запросе
может ГДЕ и ИМЕЮЩИЕ конфликтуют. вроде че-то было подобное
...
Рейтинг: 0 / 0
16.03.2011, 18:10
    #37168474
tvm
tvm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v8: Действие предиката ИМЕЮЩИЕ в запросе
...
Рейтинг: 0 / 0
17.03.2011, 10:21
    #37169293
МистерШоу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v8: Действие предиката ИМЕЮЩИЕ в запросе
Уважаемый, признателен за участие. Увы -всё очевидно, сам виноват. Невнимателен.
Налицо неполная группировка, чрезмерная самоуверенность и поспешные выводы :)
...
Рейтинг: 0 / 0
17.03.2011, 10:39
    #37169345
tvm
tvm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v8: Действие предиката ИМЕЮЩИЕ в запросе
в чем трабл-то был?
...
Рейтинг: 0 / 0
17.03.2011, 11:15
    #37169475
МистерШоу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v8: Действие предиката ИМЕЮЩИЕ в запросе
tvmв чем трабл-то был?

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


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