Имя: Пароль:
1C
1С v8
левое соединение. как оно работает?
,
0 Wobland
 
08.09.11
08:30
знаю, что к каждой строке из левой таблицы присоединяется найденное из правой. но ерунда какая-то происходит - запрос к одной таблице даёт 56 строк, если соединить её левым соединением, выходит уже 57 строк. где я недопонимаю? вот запросы:

//тут 56 строк
ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка,
   РеализацияТоваровУслуг.Контрагент,
   РеализацияТоваровУслуг.Ответственный КАК Ответственный
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
   РеализацияТоваровУслуг.Дата МЕЖДУ &НачДата И &КонДата
   И РеализацияТоваровУслуг.Проведен
   И РеализацияТоваровУслуг.Ответственный = &Ответственный

//а вот тут уже 57 строк
ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка,
   РеализацияТоваровУслуг.Контрагент,
   РеализацияТоваровУслуг.Ответственный КАК Ответственный,
   Продажи.Стоимость,
   Продажи.Номенклатура
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
       ПО РеализацияТоваровУслуг.Сделка.ПрограммныйПродукт = Продажи.Номенклатура
           И РеализацияТоваровУслуг.Сделка.СерийныйНомер = Продажи.СерияНоменклатуры
ГДЕ
   РеализацияТоваровУслуг.Дата МЕЖДУ &НачДата И &КонДата
   И РеализацияТоваровУслуг.Проведен
   И РеализацияТоваровУслуг.Ответственный = &Ответственный
1 zak555
 
08.09.11
08:31
попадает продажа не из этого дока ?
2 Гефест
 
08.09.11
08:32
Если в правой таблице под соединение подходит больше одной строки, то все они пойдут в итоговую таблицу
3 IamAlexy
 
08.09.11
08:32
таблица один:

василек
лютик
ромашка

таблица два

василек - цветочек
лютик - цветочек
ромашка - цветочек
василек - херпоймичо


результирующая таблица будет из четырех строк с двумя васильками.
4 Wobland
 
08.09.11
08:34
неа. в регистре запись с номенклатурой за этот период она такая. серийный номер уж не смотрел
5 zak555
 
08.09.11
08:35
+ где виртуальные таблицы ?
6 IamAlexy
 
08.09.11
08:35
внимательно результирующую таблиц посмотри
найди строки с одниковым значением "слева" и посмотри какой парметр "разный"
7 Wobland
 
08.09.11
08:44
(5) не знаю, мопед не мой ;)
(6) из правых значений только номенклатура и стоимость. стоимость одинаковая, номенклатура тоже (сделал Продажи.Номенклатура.Код - одинаков)
8 Wobland
 
08.09.11
08:46
все поля одинаковые. сам себе не верю, но реальность вот такая
9 IamAlexy
 
08.09.11
08:46
(8) значит у тебя 56 строк.. раз все одинаково...
10 zak555
 
08.09.11
08:46
скрин покажи
11 zak555
 
08.09.11
08:46
+ этот код откуда ?
12 Рэйв
 
08.09.11
08:46
(9)Значит по серии номенклатуры какой то 2 раза соединяется
13 Дикообразко
 
08.09.11
08:47
оно не работает - это миф
14 butterbean
 
08.09.11
08:47
(8) нужно искать одинаковые комбинации Номенклатура-Серия
15 Дикообразко
 
08.09.11
08:51
он же берет таблицу движений, а не итоговую таблицу регистра Продажи
16 Wobland
 
08.09.11
09:02
всё облазил, вплоть до ванной...
смущает меня один момент. в регистре записи с такой номенклатурой и серией всего две. но в другом периоде даже
17 butterbean
 
08.09.11
09:03
(16) у тебя нет отбора по периоду
18 Wobland
 
08.09.11
09:05
(17) левую таблицу отбираю ж
19 butterbean
 
08.09.11
09:06
(18) а правую кто фильтровать будет??
20 Wobland
 
08.09.11
09:06
да пробовал. +ГДЕ И Продажи.Период МЕЖДУ &НачДата И &КонДата - вообще пусто
21 butterbean
 
08.09.11
09:07
(20) это нужно в условие соединения пихать
22 butterbean
 
08.09.11
09:08
(21)+ и вообще надежней сделать вложенный запрос к продажам свернутый по номенклатуре-серии и суммированный по стоимости
23 Wobland
 
08.09.11
09:09
(21) спасибо, взлетело! я, правда, так и не понял, почему на моих данных такая ерунда выходила, головой и глазами вроде б не должно было
24 GoldenCalf
 
08.09.11
09:10
Запрос полное г....
25 butterbean
 
08.09.11
09:10
соберись
26 Дикообразко
 
08.09.11
09:21
(24) какой программер такой и запрос
AdBlock убивает бесплатный контент. 1Сергей