|
Запрос с тремя таблицами | ☑ | ||
---|---|---|---|---|
0
lesya_abyone
18.07.14
✎
07:52
|
Доброе утро!
Помогите найти решение. В запросе из трех таблиц выбираю данные. В результате поля Регистра сведений ПаспортныеДанныеФизическихЛиц пустые. Запрос.Текст = "ВЫБРАТЬ | ПриемНаРаботуВОрганизацию.Дата, | ПриемНаРаботуВОрганизацию.Номер, | ПриемНаРаботуВОрганизацию.Организация.Наименование, | СотрудникиОрганизаций.Наименование КАК ФИОРаботника, | СотрудникиОрганизаций.Организация.Ссылка, | СотрудникиОрганизаций.Организация.ИНН, | СотрудникиОрганизаций.Организация.КПП, | СотрудникиОрганизаций.Организация.ОГРН, | СотрудникиОрганизаций.Должность, | СотрудникиОрганизаций.ИспытательныйСрок, | СотрудникиОрганизаций.ДатаПриемаНаРаботу, | СотрудникиОрганизаций.Физлицо.ИНН, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.Наименование, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.БанкДляРасчетов.КоррСчет, | ПаспортныеДанныеФизЛиц.ДокументВид, | ПаспортныеДанныеФизЛиц.ДокументСерия, | ПаспортныеДанныеФизЛиц.ДокументНомер, | ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи, | ПаспортныеДанныеФизЛиц.ДокументКемВыдан, | ПаспортныеДанныеФизЛиц.ДокументКодПодразделения, | ПаспортныеДанныеФизЛиц.ДатаРегистрацииПоМестуЖительства |ИЗ | Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО ПриемНаРаботуВОрганизацию.РаботникиОрганизации.Ссылка = СотрудникиОрганизаций.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц | ПО ПриемНаРаботуВОрганизацию.ФизическиеЛица.ФизическоеЛицо.Ссылка = ПаспортныеДанныеФизЛиц.ФизЛицо.Ссылка |ГДЕ | ПриемНаРаботуВОрганизацию.Ссылка = &Ссылка"; |
|||
1
Wobland
18.07.14
✎
07:53
|
решение: из Документ.ПриемНаРаботуВОрганизацию.ФизическиеЛица
|
|||
2
catena
18.07.14
✎
07:58
|
или
ПО СотрудникиОрганизаций.Физлицо = ПаспортныеДанныеФизЛиц.ФизЛицо |
|||
3
Wobland
18.07.14
✎
08:00
|
и всё это без фото. непорядок
|
|||
4
lesya_abyone
18.07.14
✎
08:02
|
(2) Тоже все данные Null
|
|||
5
Wobland
18.07.14
✎
08:03
|
ну а взять и наполнить БД данными?
|
|||
6
DCKiller
18.07.14
✎
08:06
|
Кстати, вопрос - а при сдаче сертификационного экзамена по программированию на спеца допустимо в запросе сразу три таблицы джойнить?
|
|||
7
Wobland
18.07.14
✎
08:08
|
(6) меньше пяти джойнов - незачёт
|
|||
8
DCKiller
18.07.14
✎
08:10
|
(7) А если серьезно?.. :)
|
|||
9
Wobland
18.07.14
✎
08:12
|
(8) а если серьёзно, то вопрос идиотский. сколько надо, столько и делай
|
|||
10
Kememmotar
18.07.14
✎
08:13
|
У Вас в этой части запроса вообще не верно все сделано:
"|ИЗ | Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию //здесь Вы получаете саму ссылку документа | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций //здесь Вы получаете весь справочник | ПО ПриемНаРаботуВОрганизацию.РаботникиОрганизации.Ссылка = СотрудникиОрганизаций.Ссылка //А тут вы пытаетесь соединить ссылку документа со справочником, что уже приведет к тому, что запрос будет пустой | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц | ПО ПриемНаРаботуВОрганизацию.ФизическиеЛица.ФизическоеЛицо.Ссылка = ПаспортныеДанныеФизЛиц.ФизЛицо.Ссылка"; Тут надо в корне менять эту часть запроса, примерно на такое: Заменить: | ПриемНаРаботуВОрганизацию.Дата, | ПриемНаРаботуВОрганизацию.Номер, | ПриемНаРаботуВОрганизацию.Организация.Наименование, на: | ПриемНаРаботуВОрганизацию.Ссылка.Дата, | ПриемНаРаботуВОрганизацию.Ссылка.Номер, | ПриемНаРаботуВОрганизацию.Ссылка.Организация.Наименование, Заменить: | Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО ПриемНаРаботуВОрганизацию.РаботникиОрганизации.Ссылка = СотрудникиОрганизаций.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц | ПО ПриемНаРаботуВОрганизацию.ФизическиеЛица.ФизическоеЛицо.Ссылка = ПаспортныеДанныеФизЛиц.ФизЛицо.Ссылка на | Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизацию | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО ПриемНаРаботуВОрганизацию.РаботникиОрганизации.Сотрудник = СотрудникиОрганизаций.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц | ПО ПриемНаРаботуВОрганизацию.Сотрудник.ФизЛицо = ПаспортныеДанныеФизЛиц.ФизЛицо Примерно так :-) Ну а дальше смотреть, какие еще изменения необходимо сделать |
|||
11
DCKiller
18.07.14
✎
08:14
|
(9) Понятно. Ты не знаешь :)
|
|||
12
Wobland
18.07.14
✎
08:15
|
(11) именно не знаю. я столько всякой разной ерунды не знаю.. ;)
|
|||
13
hhhh
18.07.14
✎
08:16
|
(11) там такие задачи, что даже физически ты не сможешь меньше трех таблиц. Твой вопрос явно пятничный.
|
|||
14
DCKiller
18.07.14
✎
08:17
|
(13) Я знаю, какие там задачи. Просто есть ведь еще пакеты...
З.Ы, Кстати, а где пятничная ветка? |
|||
15
Wobland
18.07.14
✎
08:18
|
(14) пакетный запрос против вложенных? сложилось впечатление, что проверяльщикам пофих. не это там оценивается
|
|||
16
DCKiller
18.07.14
✎
08:21
|
(15) как раз за вложенные там и дрюкают... По крайней мере, от сдававших слышал именно так. Вроде как пакетом делать более православно.
|
|||
17
Wobland
18.07.14
✎
08:23
|
(16) молчу. у меня не было вкладенных
|
|||
18
hhhh
18.07.14
✎
08:27
|
(16) не знаю я сдавал еще в допакетную эпоху.
|
|||
19
Любопытная
18.07.14
✎
08:31
|
(16) Холивар пакетные vs вложенные вроде как тянется уже давно. И однозначного ответа на вопрос "что лучше" нет. Но мой первый учитель учил меня пакетным. Хотя, возможно, это просто его религия)
|
|||
20
Wobland
18.07.14
✎
08:33
|
(19) это очень удобная религия. во всяком случае, читать запрос сильно легче
|
|||
21
Любопытная
18.07.14
✎
08:38
|
(20) Вот не помню уже мотивацию, но читабельность была не в первых рядах.
|
|||
22
Wobland
18.07.14
✎
08:41
|
(21) ну а я тебе сколько талдычил не обращаться к одной таблице дважды внутри одного запроса? молодец, усвоила вроде ;)
|
|||
23
Kamas
18.07.14
✎
08:58
|
(19) пакеты хороши когда испльзуеш данные n -раз при n>1
|
|||
24
Любопытная
18.07.14
✎
09:07
|
(23) Во всех остальных случаях лучше вложенные? По-моему, это не то
|
|||
25
AlexITGround
18.07.14
✎
09:33
|
читать Ицик Бен-Гана, срочно.
|
|||
26
lesya_abyone
21.07.14
✎
08:29
|
Доброе утро. Снова у меня ступор. Переделываю в очередной раз запрос. Вариант 1
Запрос.Текст = "ВЫБРАТЬ | ПриемНаРаботуВОрганизацию.Ссылка.Дата КАК ДатаСоставления, | ПриемНаРаботуВОрганизацию.Ссылка.Номер КАК НомерДокумента, | ПриемНаРаботуВОрганизацию.Ссылка.Организация.Наименование КАК ОрганизацияНаименование, | СотрудникиОрганизаций.Наименование КАК ФИОРаботника, | СотрудникиОрганизаций.Организация.Ссылка КАК СсылкаОгранизация, | СотрудникиОрганизаций.Организация.ИНН КАК ОрганизацияИНН, | СотрудникиОрганизаций.Организация.КПП КАК ОрганизацияКПП, | СотрудникиОрганизаций.Организация.ОГРН КАК ОрганизацияОГРН, | СотрудникиОрганизаций.Должность, | СотрудникиОрганизаций.ИспытательныйСрок, | СотрудникиОрганизаций.ДатаПриемаНаРаботу, | СотрудникиОрганизаций.Физлицо.ИНН КАК РаботникИНН, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.Наименование КАК БанковскийСчет, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.БанкДляРасчетов.КоррСчет КАК КоррСчетБанка, | ПаспортныеДанныеФизЛиц.ДокументСерия, | ПаспортныеДанныеФизЛиц.ДокументНомер, | ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи, | ПаспортныеДанныеФизЛиц.ДокументКемВыдан, | ПаспортныеДанныеФизЛиц.ДатаРегистрацииПоМестуЖительства, | ПриемНаРаботуВОрганизацию.Организация.ОсновнойБанковскийСчет.Банк.Код КАК ОрганизацияБИК, | ПаспортныеДанныеФизЛиц.ФизЛицо.Ссылка КАК ФизЛицоСсылка, | ПриемНаРаботуВОрганизацию.Организация.НаименованиеПолное КАК НаименованиеПолное, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.НомерСчета КАК НомерСчета, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.Банк.Наименование КАК БанкНаименование, | ПриемНаРаботуВОрганизацию.Ответственный.ФизЛицо.Ссылка КАК Ответственный |ИЗ | Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО (СотрудникиОрганизаций.Физлицо = ПриемНаРаботуВОрганизацию.ФизическиеЛица.ФизическоеЛицо), | РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц |ГДЕ | ПриемНаРаботуВОрганизацию.Ссылка = &Ссылка"; Выбирате лишних сотрудников, из РегистрСведений.ПаспортныеДанныеФизЛиц Вариант 2, исправленный Запрос.Текст = "ВЫБРАТЬ | ПриемНаРаботуВОрганизацию.Ссылка.Дата КАК ДатаСоставления, | ПриемНаРаботуВОрганизацию.Ссылка.Номер КАК НомерДокумента, | ПриемНаРаботуВОрганизацию.Ссылка.Организация.Наименование КАК ОрганизацияНаименование, | СотрудникиОрганизаций.Наименование КАК ФИОРаботника, | СотрудникиОрганизаций.Организация.Ссылка КАК СсылкаОгранизация, | СотрудникиОрганизаций.Организация.ИНН КАК ОрганизацияИНН, | СотрудникиОрганизаций.Организация.КПП КАК ОрганизацияКПП, | СотрудникиОрганизаций.Организация.ОГРН КАК ОрганизацияОГРН, | СотрудникиОрганизаций.Должность, | СотрудникиОрганизаций.ИспытательныйСрок, | СотрудникиОрганизаций.ДатаПриемаНаРаботу, | СотрудникиОрганизаций.Физлицо.ИНН КАК РаботникИНН, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.Наименование КАК БанковскийСчет, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.БанкДляРасчетов.КоррСчет КАК КоррСчетБанка, | ПаспортныеДанныеФизЛиц.ДокументСерия, | ПаспортныеДанныеФизЛиц.ДокументНомер, | ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи, | ПаспортныеДанныеФизЛиц.ДокументКемВыдан, | ПаспортныеДанныеФизЛиц.ДатаРегистрацииПоМестуЖительства, | ПриемНаРаботуВОрганизацию.Организация.ОсновнойБанковскийСчет.Банк.Код КАК ОрганизацияБИК, | ПриемНаРаботуВОрганизацию.Организация.НаименованиеПолное КАК НаименованиеПолное, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.НомерСчета КАК НомерСчета, | СотрудникиОрганизаций.Организация.ОсновнойБанковскийСчет.Банк.Наименование КАК БанкНаименование, | ПриемНаРаботуВОрганизацию.Ответственный.ФизЛицо.Ссылка КАК Ответственный, | СотрудникиОрганизаций.Ссылка КАК СотрудникСсылка, | ПаспортныеДанныеФизЛиц.ФизЛицо.Ссылка |ИЗ | Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО (СотрудникиОрганизаций.Физлицо = ПриемНаРаботуВОрганизацию.ФизическиеЛица.ФизическоеЛицо) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц | ПО (ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ФизЛицо = ПаспортныеДанныеФизЛиц.ФизЛицо) |ГДЕ | ПриемНаРаботуВОрганизацию.Ссылка = &Ссылка"; Если в Документ.ПриемНаРаботуВОрганизацию один сотрудник, все ок. Иначе в ПаспортныеДанныеФизЛиц.ФизЛицо.Ссылка ничего нет. |
|||
27
hhhh
21.07.14
✎
09:14
|
ну так
|ИЗ | Документ.ПриемНаРаботуВОрганизацию.ФизическиеЛица КАК ПриемНаРаботуВОрганизациюФизическиеЛица |
|||
28
bolder
21.07.14
✎
10:03
|
(27) Ну что, по кругу?В (1) то же самое))).
|
|||
29
lesya_abyone
21.07.14
✎
10:18
|
))))Тема закрыта
|
|||
30
bolder
21.07.14
✎
11:38
|
(29) Говорили же, без фотки не взлетит)).Нарушаем правила форума?)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |