|
Соединение таблиц в СКД | ☑ | ||
---|---|---|---|---|
0
Ирина-М
15.12.14
✎
16:43
|
Здравствуйте. Можно ли в СКД, в запросе соединить две таблицы горизонтально без условий. Но результата должен быть не произведение строк двух таблиц, а наибольшее число строк из этих двух таблиц
|
|||
1
Жан Пердежон
15.12.14
✎
16:44
|
результатом хоть какого соединения число быть не может
|
|||
2
Classic
15.12.14
✎
17:00
|
Нумеруй обе таблицы и соединяй по номеру.
|
|||
3
Другая
15.12.14
✎
17:05
|
У меня скромный вопрос - для чего это нужно?
|
|||
4
Lelic
15.12.14
✎
17:09
|
Можно сделать третью таблицу с перечнем строк "без повторяющихся", а к ней - по очереди левое соединению с вашими таблицами. Как-то так...
|
|||
5
Рэйв
15.12.14
✎
17:21
|
(0)Полное соединение в запросе.
|
|||
6
Ирина-М
16.12.14
✎
08:29
|
(5) Полное соединение дает произведение строк двух таблиц. (2) Спасибо, так и сделала, но выборка получилась сложная.
(3) У меня есть регистр сведений с измерениями: дни недели - перечисление, филиалы - справочник, часы - перечисление. Нужна выборка Филиал пн вт ср чт пт сб Орел 10 10 19 Орел 12 13 Казань 17 14 15 10 19 13 Казань 19 17 Новая строка в графике должна добавляться в график только в том случае, если часы нельзя поместить в уже существующую строку графика для данного филиала и дня недели. (4) Не поняла про третью таблицу. вот моя выборка ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК пн, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер, МеткиПоСборуЗаказов.День.Порядок, МеткиПоСборуЗаказов.Час.Порядок ПОМЕСТИТЬ табпн ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.понедельник)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.понедельник)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час, МеткиПоСборуЗаказов.День.Порядок, МеткиПоСборуЗаказов.Час.Порядок ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК вт, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табвт ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.вторник)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.вторник)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК ср, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табср ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.среда)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.среда)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК чт, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табчт ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.четверг)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.четверг)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК пт, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табпт ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.пятница)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.пятница)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК сб, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табсб ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.суббота)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.суббота)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК вс, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табвс ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.воскресенье)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.воскресенье)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА табпн.филиал <> "" ТОГДА табпн.филиал КОГДА табвт.филиал <> "" ТОГДА табвт.филиал КОГДА табср.филиал <> "" ТОГДА табср.филиал КОГДА табчт.филиал <> "" ТОГДА табчт.филиал КОГДА табпт.филиал <> "" ТОГДА табпт.филиал КОГДА табчт.филиал <> "" ТОГДА табсб.филиал КОГДА табпт.филиал <> "" ТОГДА табвс.филиал КОНЕЦ КАК филиал, табпн.пн, табвт.вт, табср.ср, табчт.чт, табпт.пт, табсб.сб, табвс.вс ИЗ табпн КАК табпн ПОЛНОЕ СОЕДИНЕНИЕ табвт КАК табвт ПО (табвт.филиал = табпн.филиал) И (табвт.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табср КАК табср ПО (табср.филиал = табпн.филиал) И (табср.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табчт КАК табчт ПО (табчт.филиал = табпн.филиал) И (табчт.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табпт КАК табпт ПО (табпт.филиал = табпн.филиал) И (табпт.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табсб КАК табсб ПО (табсб.филиал = табпн.филиал) И (табсб.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табвс КАК табвс ПО табпн.филиал = табвс.филиал И (табвс.Номер = табпн.Номер) |
|||
7
Ирина-М
16.12.14
✎
09:09
|
(5) Полное соединение дает произведение строк двух таблиц. (2) Спасибо, так и сделала, но выборка получилась сложная.
(3) У меня есть регистр сведений с измерениями: дни недели - перечисление, филиалы - справочник, часы - перечисление. Нужна выборка Филиал пн вт ср чт пт сб Орел 10 10 19 Орел 12 13 Казань 17 14 15 10 19 13 Казань 19 17 Новая строка в графике должна добавляться в график только в том случае, если часы нельзя поместить в уже существующую строку графика для данного филиала и дня недели. (4) Не поняла про третью таблицу. вот моя выборка ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК пн, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер, МеткиПоСборуЗаказов.День.Порядок, МеткиПоСборуЗаказов.Час.Порядок ПОМЕСТИТЬ табпн ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.понедельник)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.понедельник)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час, МеткиПоСборуЗаказов.День.Порядок, МеткиПоСборуЗаказов.Час.Порядок ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК вт, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табвт ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.вторник)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.вторник)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК ср, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табср ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.среда)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.среда)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК чт, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табчт ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.четверг)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.четверг)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК пт, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табпт ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.пятница)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.пятница)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК сб, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табсб ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.суббота)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.суббота)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МеткиПоСборуЗаказов.Филиал КАК филиал, МеткиПоСборуЗаказов.Час КАК вс, КОЛИЧЕСТВО(МеткиПоСборуЗаказов_1.Час) КАК Номер ПОМЕСТИТЬ табвс ИЗ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МеткиПоСборуЗаказов КАК МеткиПоСборуЗаказов_1 ПО МеткиПоСборуЗаказов.Час >= МеткиПоСборуЗаказов_1.Час И МеткиПоСборуЗаказов.Филиал = МеткиПоСборуЗаказов_1.Филиал И (МеткиПоСборуЗаказов.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.воскресенье)) И (МеткиПоСборуЗаказов_1.День = ЗНАЧЕНИЕ(перечисление.ДниНедели.воскресенье)) СГРУППИРОВАТЬ ПО МеткиПоСборуЗаказов.Филиал, МеткиПоСборуЗаказов.Час ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА табпн.филиал <> "" ТОГДА табпн.филиал КОГДА табвт.филиал <> "" ТОГДА табвт.филиал КОГДА табср.филиал <> "" ТОГДА табср.филиал КОГДА табчт.филиал <> "" ТОГДА табчт.филиал КОГДА табпт.филиал <> "" ТОГДА табпт.филиал КОГДА табчт.филиал <> "" ТОГДА табсб.филиал КОГДА табпт.филиал <> "" ТОГДА табвс.филиал КОНЕЦ КАК филиал, табпн.пн, табвт.вт, табср.ср, табчт.чт, табпт.пт, табсб.сб, табвс.вс ИЗ табпн КАК табпн ПОЛНОЕ СОЕДИНЕНИЕ табвт КАК табвт ПО (табвт.филиал = табпн.филиал) И (табвт.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табср КАК табср ПО (табср.филиал = табпн.филиал) И (табср.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табчт КАК табчт ПО (табчт.филиал = табпн.филиал) И (табчт.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табпт КАК табпт ПО (табпт.филиал = табпн.филиал) И (табпт.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табсб КАК табсб ПО (табсб.филиал = табпн.филиал) И (табсб.Номер = табпн.Номер) ПОЛНОЕ СОЕДИНЕНИЕ табвс КАК табвс ПО табпн.филиал = табвс.филиал И (табвс.Номер = табпн.Номер) |
|||
8
Жан Пердежон
16.12.14
✎
10:46
|
(6) 3 или 4 уже с таким вопросом за последнее время
это на собеседовании такое задают что ли?) |
|||
9
Ирина-М
16.12.14
✎
10:47
|
(8) да
|
|||
10
pessok
16.12.14
✎
10:49
|
когда же они уже найдут себе одноэсника-то?!
|
|||
11
pessok
16.12.14
✎
10:50
|
(9) колись уже хоть ты, что за контора такая, из-за которой на форуме эта тема уже скоро станет мемом :D
|
|||
12
ssh2QQ6
16.12.14
✎
10:58
|
ОБЪЕДЕНИТЬ без ВСЕ
|
|||
13
Ирина-М
16.12.14
✎
11:27
|
(12) Не подходит. Мне надо вывести все столбцы пн, вт, ср ... (11) пусть следующий с таким же вопросом расколется
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |