|
|
|
v8: Полное соединение табличных частей документов | ☑ | ||
|---|---|---|---|---|
|
0
HNKOVAN
18.03.14
✎
17:08
|
Я начинающий погромист, не судите строго. :-)
А с SQL столкнулся вчера в первый раз. Искать ответ в интернете уже нету сил, нигде ясного ответа не нашёл. Возникла необходимость проверить фактическое выполнение заказов. Для этого слепил в конструкторе запрос с "полным соединением" табличных частей документов ЗаказПокупателя и РеализацияТоваровУслуг по полям Номенклатура и Контрагент. Но почему-то в результате выполнения запроса отсутствуют данные о тех позициях номенклатуры заказов, которые совсем не были выполнены (их нет в табличной части документа РеализацияТоваровУслуг). Но это же ПОЛНОЕ соединение? Что я делаю не так? От безысходности пробовал ПРАВОЕ, ЛЕВОЕ - вожделенные "NULLи" всё равно не появляются. :-) ВЫБРАТЬ ЗаказПокупателяТовары.Ссылка.Номер, ЗаказПокупателяТовары.Ссылка.Дата, ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки, ЗаказПокупателяТовары.Ссылка.Контрагент, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Ссылка.Контрагент), ЗаказПокупателяТовары.Номенклатура, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура), ЗаказПокупателяТовары.Количество КАК Количество, РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер1, РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата1, РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент1, ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Ссылка.Контрагент) КАК КонтрагентПредставление1, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура1, ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура) КАК НоменклатураПредставление1, РеализацияТоваровУслугТовары.Количество КАК Количество1 ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент = ЗаказПокупателяТовары.Ссылка.Контрагент И РеализацияТоваровУслугТовары.Номенклатура = ЗаказПокупателяТовары.Номенклатура ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач И РеализацияТоваровУслугТовары.Ссылка.Дата < &ДатаКон И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &ДатаНач И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки < &ДатаКон |
|||
|
1
vicof
18.03.14
✎
17:11
|
У тебя тут не полное, а внутреннее соединение
|
|||
|
2
ale-sarin
18.03.14
✎
17:12
|
в этом тексте вместо ПОЛНОЕ напишите ПРАВОЕ
И вместо ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач И РеализацияТоваровУслугТовары.Ссылка.Дата < &ДатаКон И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &ДатаНач И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки < &ДатаКон напишите И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &ДатаНач И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки < &ДатаКон ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач И РеализацияТоваровУслугТовары.Ссылка.Дата < &ДатаКон |
|||
|
3
ale-sarin
18.03.14
✎
17:13
|
+2 ой наоборот
И РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач И РеализацияТоваровУслугТовары.Ссылка.Дата < &ДатаКон ГДЕ И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &ДатаНач И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки < &ДатаКон |
|||
|
4
ale-sarin
18.03.14
✎
17:14
|
ну и дату можно проверять на МЕЖДУ &ДатаНач и &ДатаКон
|
|||
|
5
vicof
18.03.14
✎
17:15
|
(2)(3)Эмм, а в условия соединения условия по датам не проще вынести?
|
|||
|
6
ale-sarin
18.03.14
✎
17:15
|
(5) Так я и вынес в соединение даты реализации.
А заказы не надо, я так понял. |
|||
|
7
patapum
18.03.14
✎
17:15
|
(0) а мне одному кажется, что по соединять надо по заказу, а не по контрагенту?
ПО РеализацияТоваровУслугТовары.Ссылка.ЗаказКлиента = ЗаказПокупателяТовары.Ссылка И РеализацияТоваровУслугТовары.Номенклатура = ЗаказПокупателяТовары.Номенклатура |
|||
|
8
vicof
18.03.14
✎
17:17
|
(4) Не совсем явственно следует, что в условии это должно быть написано
(7) Подожди, автор еще не созрел. |
|||
|
9
HNKOVAN
18.03.14
✎
17:25
|
(7) В документах "Реализация" Реквизит "Заказ" чаще не заполнен, чем заполнен.
|
|||
|
10
HNKOVAN
18.03.14
✎
17:26
|
(1) Вот результат запроса действительно так и выглядит. Но почему?! Что нужно исправить?
|
|||
|
11
vicof
18.03.14
✎
17:28
|
(10) Ты ветку читал?
|
|||
|
12
HNKOVAN
18.03.14
✎
17:30
|
(2) То есть, если написать так, то NULL наконец-то появятся?
ВЫБРАТЬ ЗаказПокупателяТовары.Ссылка.Номер, ЗаказПокупателяТовары.Ссылка.Дата, ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки, ЗаказПокупателяТовары.Ссылка.Контрагент, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Ссылка.Контрагент), ЗаказПокупателяТовары.Номенклатура, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура), ЗаказПокупателяТовары.Количество КАК Количество, РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер1, РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата1, РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент1, ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Ссылка.Контрагент) КАК КонтрагентПредставление1, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура1, ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура) КАК НоменклатураПредставление1, РеализацияТоваровУслугТовары.Количество КАК Количество1 ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент = ЗаказПокупателяТовары.Ссылка.Контрагент И РеализацияТоваровУслугТовары.Номенклатура = ЗаказПокупателяТовары.Номенклатура И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &ДатаНач И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки < &ДатаКон ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач И РеализацияТоваровУслугТовары.Ссылка.Дата < &ДатаКон |
|||
|
13
ale-sarin
18.03.14
✎
17:31
|
(12) см (3)
|
|||
|
14
ale-sarin
18.03.14
✎
17:31
|
и не ПОЛНОЕ, а ПРАВОЕ
|
|||
|
15
HNKOVAN
18.03.14
✎
17:33
|
(11) Имеете ввиду другие темы? Или сообщения этой темы? В этой теме вроде уже всё прочитал, но так ничего и не понял.
|
|||
|
16
vicof
18.03.14
✎
17:34
|
(15) Эту тему, читай еще, до просветления
|
|||
|
17
ale-sarin
18.03.14
✎
17:35
|
(15) на, блин.
ВЫБРАТЬ ЗаказПокупателяТовары.Ссылка.Номер, ЗаказПокупателяТовары.Ссылка.Дата, ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки, ЗаказПокупателяТовары.Ссылка.Контрагент, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Ссылка.Контрагент), ЗаказПокупателяТовары.Номенклатура, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура), ЗаказПокупателяТовары.Количество КАК Количество, РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер1, РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата1, РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент1, ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Ссылка.Контрагент) КАК КонтрагентПредставление1, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура1, ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура) КАК НоменклатураПредставление1, РеализацияТоваровУслугТовары.Количество КАК Количество1 ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент = ЗаказПокупателяТовары.Ссылка.Контрагент И РеализацияТоваровУслугТовары.Номенклатура = ЗаказПокупателяТовары.Номенклатура И (РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНач) И (РеализацияТоваровУслугТовары.Ссылка.Дата < &ДатаКон) ГДЕ ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &ДатаНач И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки < &ДатаКон |
|||
|
18
France
18.03.14
✎
17:36
|
(0) начинающий погромист?
|
|||
|
19
HNKOVAN
18.03.14
✎
17:42
|
(15) Спасибо большое, попытаюсь в четверг (раньше не получится) сделать так.
Хотя логика исправления от меня ускользает. И если написать не ЛЕВОЕ а ПОЛНОЕ - работать не будет? Но спасибо, буду много думать и читать мануалы :-) |
|||
|
20
HNKOVAN
18.03.14
✎
17:42
|
(18) Шутка юмора :-)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |