|
Непонятное поведение запроса | ☑ | ||
---|---|---|---|---|
0
LivingStar
01.11.19
✎
05:50
|
Запрос выбирает записи по снилс и фио, но в передаваемой таблице есть запись конец таблицы
и каким то образом эта запись выбирается в связке с некоторыми фио. Каким образом это и почему происходит? Запрос.Текст = " |ВЫБРАТЬ | Таблица.Колонка1 КАК ФИОФизЛица, | Таблица.Колонка2 КАК Рост, | Таблица.Колонка3 КАК РазмерОдежды, | Таблица.Колонка4 КАК РазмерОбуви, | Таблица.Колонка5 КАК РазмерГоловногоУбора, | Таблица.Колонка6 КАК РазмерПротивогаза, | Таблица.Колонка7 КАК РазмерРеспиратора, | Таблица.Колонка8 КАК РазмерПерчаток, | Таблица.Колонка9 КАК РазмерРукавиц, | Таблица.Колонка10 КАК СНИЛС |ПОМЕСТИТЬ ВТ_АнтропометрическиеСведения |ИЗ | &Таблица КАК Таблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ФизическиеЛица.Ссылка КАК ФизическоеЛицоСсылка, | ФизическиеЛица.Фамилия КАК Фамилия, | ФизическиеЛица.Имя КАК Имя, | ФизическиеЛица.Отчество КАК Отчество, | ФизическиеЛица.ФИО КАК ФИО, | ФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР, | ВТ_АнтропометрическиеСведения.ФИОФизЛица КАК ФИОФизЛица, | ВТ_АнтропометрическиеСведения.Рост КАК Рост, | ВТ_АнтропометрическиеСведения.РазмерОдежды КАК РазмерОдежды, | ВТ_АнтропометрическиеСведения.РазмерОбуви КАК РазмерОбуви, | ВТ_АнтропометрическиеСведения.РазмерГоловногоУбора КАК РазмерГоловногоУбора, | ВТ_АнтропометрическиеСведения.РазмерПротивогаза КАК РазмерПротивогаза, | ВТ_АнтропометрическиеСведения.РазмерРеспиратора КАК РазмерРеспиратора, | ВТ_АнтропометрическиеСведения.РазмерПерчаток КАК РазмерПерчаток, | ВТ_АнтропометрическиеСведения.РазмерРукавиц КАК РазмерРукавиц, | ВТ_АнтропометрическиеСведения.СНИЛС КАК СНИЛС |ИЗ | ВТ_АнтропометрическиеСведения КАК ВТ_АнтропометрическиеСведения | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО (ФизическиеЛица.СтраховойНомерПФР = ВТ_АнтропометрическиеСведения.СНИЛС | ИЛИ ВТ_АнтропометрическиеСведения.ФИОФизЛица = ФизическиеЛица.ФИО)"; Запрос.УстановитьПараметр("Таблица", ТаблицаРезультат); |
|||
1
LivingStar
01.11.19
✎
05:59
|
Если удалить эту запись, вроде как нормально идет все. Но что это за коллизия из за этой записи?
ТаблицаРезультат.Удалить(ТаблицаРезультат.Найти("Конец таблицы", "Колонка1")); // Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Таблица.Колонка1 КАК ФИОФизЛица, | Таблица.Колонка2 КАК Рост, | Таблица.Колонка3 КАК РазмерОдежды, | Таблица.Колонка4 КАК РазмерОбуви, | Таблица.Колонка5 КАК РазмерГоловногоУбора, | Таблица.Колонка6 КАК РазмерПротивогаза, | Таблица.Колонка7 КАК РазмерРеспиратора, | Таблица.Колонка8 КАК РазмерПерчаток, | Таблица.Колонка9 КАК РазмерРукавиц, | Таблица.Колонка10 КАК СНИЛС |ПОМЕСТИТЬ ВТ_АнтропометрическиеСведения |ИЗ | &Таблица КАК Таблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ФизическиеЛица.Ссылка КАК ФизическоеЛицоСсылка, | ФизическиеЛица.Фамилия КАК Фамилия, | ФизическиеЛица.Имя КАК Имя, | ФизическиеЛица.Отчество КАК Отчество, | ФизическиеЛица.ФИО КАК ФИО, | ФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР, | ВТ_АнтропометрическиеСведения.ФИОФизЛица КАК ФИОФизЛица, | ВТ_АнтропометрическиеСведения.Рост КАК Рост, | ВТ_АнтропометрическиеСведения.РазмерОдежды КАК РазмерОдежды, | ВТ_АнтропометрическиеСведения.РазмерОбуви КАК РазмерОбуви, | ВТ_АнтропометрическиеСведения.РазмерГоловногоУбора КАК РазмерГоловногоУбора, | ВТ_АнтропометрическиеСведения.РазмерПротивогаза КАК РазмерПротивогаза, | ВТ_АнтропометрическиеСведения.РазмерРеспиратора КАК РазмерРеспиратора, | ВТ_АнтропометрическиеСведения.РазмерПерчаток КАК РазмерПерчаток, | ВТ_АнтропометрическиеСведения.РазмерРукавиц КАК РазмерРукавиц, | ВТ_АнтропометрическиеСведения.СНИЛС КАК СНИЛС |ИЗ | ВТ_АнтропометрическиеСведения КАК ВТ_АнтропометрическиеСведения | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО (ФизическиеЛица.СтраховойНомерПФР = ВТ_АнтропометрическиеСведения.СНИЛС | ИЛИ ВТ_АнтропометрическиеСведения.ФИОФизЛица = ФизическиеЛица.ФИО)"; Запрос.УстановитьПараметр("Таблица", ТаблицаРезультат); |
|||
2
DrZombi
гуру
01.11.19
✎
06:05
|
(0) Ошибка в:
1. ВТ_АнтропометрическиеСведения - Содержат дубли 2. ФизическиеЛица - содержать дубли. ...Всегда пожалуйста :) |
|||
3
DrZombi
гуру
01.11.19
✎
06:06
|
+ Дубли, в плане связок "СНИЛС" - "СтраховойНомерПФР"
"ФИО" - "ФИОФизЛица" |
|||
4
DrZombi
гуру
01.11.19
✎
06:07
|
+ Ты пойми, не у всех может быть указан снилс, фио.
|
|||
5
DrZombi
гуру
01.11.19
✎
06:07
|
Как вариант, удалить последнюю строку.
|
|||
6
LivingStar
01.11.19
✎
06:11
|
(5) Строку удалил. Дублей нет. Но вот так почему то криво выбиралось (
|
|||
7
DrZombi
гуру
01.11.19
✎
06:17
|
(6) Да у вас там условие "или"
ФизическиеЛица.СтраховойНомерПФР = ВТ_АнтропометрическиеСведения.СНИЛС | ИЛИ ВТ_АнтропометрическиеСведения.ФИОФизЛица = ФизическиеЛица.ФИО ... Если результат странный, значит у вас там есть такой набор данных, который удовлетворяет связи. По пустому полю тоже связывает ;) |
|||
8
DrZombi
гуру
01.11.19
✎
06:17
|
+ Криво пишешь, криво связывает...
|
|||
9
LivingStar
01.11.19
✎
06:24
|
(8) А что криво? Если мне нужно проверять по снилс или по физ лицу.
(7) ну так условие не выполняется, почему выборка идет не правильных данных? |
|||
10
catena
01.11.19
✎
06:25
|
(9)У тебя твоя таблица - основная, почему он не должен выбирать из нее все, что есть? Это левая таблица присоединяется по условиям связи, правая таблица присутствует в выборке полностью всегда.
|
|||
11
LivingStar
01.11.19
✎
06:27
|
(10 ) я поменял связь
ТаблицаРезультат.Удалить(ТаблицаРезультат.Найти("Конец таблицы", "Колонка1")); // Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Таблица.Колонка1 КАК ФИОФизЛица, | Таблица.Колонка2 КАК Рост, | Таблица.Колонка3 КАК РазмерОдежды, | Таблица.Колонка4 КАК РазмерОбуви, | Таблица.Колонка5 КАК РазмерГоловногоУбора, | Таблица.Колонка6 КАК РазмерПротивогаза, | Таблица.Колонка7 КАК РазмерРеспиратора, | Таблица.Колонка8 КАК РазмерПерчаток, | Таблица.Колонка9 КАК РазмерРукавиц, | Таблица.Колонка10 КАК СНИЛС |ПОМЕСТИТЬ ВТ_АнтропометрическиеСведения |ИЗ | &Таблица КАК Таблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ФизическиеЛица.Ссылка КАК ФизическоеЛицоСсылка, | ФизическиеЛица.Фамилия КАК Фамилия, | ФизическиеЛица.Имя КАК Имя, | ФизическиеЛица.Отчество КАК Отчество, | ФизическиеЛица.ФИО КАК ФИО, | ФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР, | ВТ_АнтропометрическиеСведения.ФИОФизЛица КАК ФИОФизЛица, | ВТ_АнтропометрическиеСведения.Рост КАК Рост, | ВТ_АнтропометрическиеСведения.РазмерОдежды КАК РазмерОдежды, | ВТ_АнтропометрическиеСведения.РазмерОбуви КАК РазмерОбуви, | ВТ_АнтропометрическиеСведения.РазмерГоловногоУбора КАК РазмерГоловногоУбора, | ВТ_АнтропометрическиеСведения.РазмерПротивогаза КАК РазмерПротивогаза, | ВТ_АнтропометрическиеСведения.РазмерРеспиратора КАК РазмерРеспиратора, | ВТ_АнтропометрическиеСведения.РазмерПерчаток КАК РазмерПерчаток, | ВТ_АнтропометрическиеСведения.РазмерРукавиц КАК РазмерРукавиц, | ВТ_АнтропометрическиеСведения.СНИЛС КАК СНИЛС |ИЗ | ВТ_АнтропометрическиеСведения КАК ВТ_АнтропометрическиеСведения | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО (ФизическиеЛица.СтраховойНомерПФР = ВТ_АнтропометрическиеСведения.СНИЛС | ИЛИ ВТ_АнтропометрическиеСведения.ФИОФизЛица = ФизическиеЛица.ФИО)"; Запрос.УстановитьПараметр("Таблица", ТаблицаРезультат); |
|||
12
LivingStar
01.11.19
✎
06:32
|
(11) почему этот запрос не выбирает правильно данные?
|
|||
13
shadow_sw
01.11.19
✎
06:40
|
(12) ответ в (2)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |