![]() |
![]() |
![]() |
|
Помогите понять логику работы запроса | ☑ | ||
---|---|---|---|---|
0
Big_Nic
29.07.11
✎
12:15
|
Добрый день.
Вопрос такой,не могу понять почему так получается, если в документе сделать дубли некоторых строк(к примеру чтобы строка с номенклатурой "сахарный песок" повторялась в документе несколько раз, БП 2.0 демо), то при выполнении этого запроса, в результат выходит только номенклатура, которая удовлетворяет условию, то есть "Сахарный песок". ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары1.НомерСтроки ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары1 ПО ПоступлениеТоваровУслугТовары.НомерСтроки <> ПоступлениеТоваровУслугТовары1.НомерСтроки И ПоступлениеТоваровУслугТовары.Номенклатура = ПоступлениеТоваровУслугТовары1.Номенклатура ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка И ПоступлениеТоваровУслугТовары1.Ссылка = &Ссылка Я думал, что должна выходить вся номенклатура таблицы "ПоступлениеТоваровУслугТовары" , а если есть совпадения удовлетворяющие условию, то поле "Номер строки" <> NULL. Помогите разобраться? |
|||
1
hhhh
29.07.11
✎
12:20
|
ну видимо вот это бредовое условие
ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка И ПоступлениеТоваровУслугТовары1.Ссылка = &Ссылка то есть и ежу понятно, что ПоступлениеТоваровУслугТовары1.Ссылка = NULL а ты по-лохоски веришь, что оно равно &ссылка. |
|||
2
unregistered
29.07.11
✎
12:21
|
ПоступлениеТоваровУслугТовары1.Ссылка = NULL
почему? |
|||
3
forforumandspam
29.07.11
✎
12:21
|
(1) По моему, ты сам не понял.
|
|||
4
Fragster
гуру
29.07.11
✎
12:23
|
логики нет. автору нужно объяснить, чего ему надо
|
|||
5
hhhh
29.07.11
✎
12:24
|
ну если ПоступлениеТоваровУслугТовары1.НомерСтроки = NULL, тогда и
ПоступлениеТоваровУслугТовары1.Ссылка = NULL логику включай. Поэтому ему выходят только те строчки, в которых ПоступлениеТоваровУслугТовары1.НомерСтроки <> NULL |
|||
6
forforumandspam
29.07.11
✎
12:24
|
(0) Запрос вывод только дубли? По моему, так и должно быть.
|
|||
7
Big_Nic
29.07.11
✎
12:24
|
(1)
ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка И ПоступлениеТоваровУслугТовары1.Ссылка = &Ссылка это условие говорит о том что мы работаем с одной таблицей одного и того же документа. |
|||
8
unregistered
29.07.11
✎
12:25
|
(0) Автор, напиши по русски.
1. Что в ТЧ 2. Что в результате запроса 3. Что ожидаешь от этого запроса. |
|||
9
GenV
29.07.11
✎
12:25
|
(0) Твое полное соединение превращается во внутреннее условием:
ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка И ПоступлениеТоваровУслугТовары1.Ссылка = &Ссылка |
|||
10
hhhh
29.07.11
✎
12:26
|
(7) ты не понял, ГДЕ в программах 1С применяется не таблице, а к результату соединения. Сначала Соединение, потом ГДЕ.
|
|||
11
unregistered
29.07.11
✎
12:28
|
(7) hhhh прав, т.к. (9)
|
|||
12
ptiz
29.07.11
✎
12:28
|
(0) Если я правильно понял, тебе нужна таблица документа ПЛЮС колонка, где будет признак - есть ли дубли.
Тогда нужен еще один запрос: левое соединение таб.части с результатом запроса из (0). При этом тебе надо будет сгруппировать запрос из (0) по товарам, будет задвоение строк. |
|||
13
szhukov
29.07.11
✎
12:31
|
(0) В запросе (0) вы получаете только дубли.
Что бы получить полный список номенклатуры с указанием номеров дублированных строк, нужно сделать как указано в (12) |
|||
14
Big_Nic
29.07.11
✎
12:34
|
(1) ты прав. Щас сначало ТЧ закинул в временную таблицу, а потом уже их соединил, и результат тот который я и ожидал.
(10) >ты не понял, ГДЕ в программах 1С применяется не таблице, а к результату соединения. Сначала Соединение, потом ГДЕ. В этом я как раз тупанул. Спасибо всем. |
|||
15
unregistered
29.07.11
✎
12:34
|
может как-то так?
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Номенклатура ИМЕЮЩИЕ СУММА(1) > 1 |
|||
16
kosts
29.07.11
✎
13:09
|
(1) Что за страна такая лохоски? :-)
|
|||
17
kosts
29.07.11
✎
13:11
|
(14) > ГДЕ в программах 1С применяется не таблице, а к результату соединения. Сначала Соединение, потом ГДЕ.
Не только в 1С - в SQL то же самое |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |