|
Связь в запросе по двум полям | ☑ | ||
---|---|---|---|---|
0
Web00001
30.08.12
✎
10:31
|
Из регистра выбираются остатки в разрезе номенклатуры и складов, делаю левое соединение со второй таблицей в которой данные тоже по двум полям, как мне соединить эти таблицы?
|
|||
1
Ненавижу 1С
гуру
30.08.12
✎
10:32
|
ПО ...=... И ...=...
|
|||
2
ДенисЧ
30.08.12
✎
10:32
|
Есть такая волшебная буква "И"
|
|||
3
Web00001
30.08.12
✎
10:37
|
(1)(2)об этом подумал в первую очередь, данные перестают попадать в выборку
|
|||
4
andrewks
30.08.12
✎
10:38
|
(3) предлагаешь потелепатировать?
|
|||
5
Web00001
30.08.12
✎
10:38
|
(4)ок
|
|||
6
Web00001
30.08.12
✎
10:39
|
ВЫБРАТЬ
ЗаказыПродавцовОстатки.Номенклатура, ЗаказыПродавцовОстатки.СкладЗаказчик КАК Склад, ЗаказыПродавцовОстатки.КоличествоОстаток КАК Заказано, ТоварыВРозницеОстатки.КоличествоОстаток КАК ОстатокНаСкладе, ПродажиОбороты.КоличествоОборот КАК Продажи, ПроцентРаспределения.Количество КАК Коэффициент ИЗ РегистрНакопления.ЗаказыПродавцов.Остатки КАК ЗаказыПродавцовОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки КАК ТоварыВРозницеОстатки ПО ЗаказыПродавцовОстатки.Номенклатура = ТоварыВРозницеОстатки.Номенклатура И ЗаказыПродавцовОстатки.СкладЗаказчик = ТоварыВРозницеОстатки.Склад ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ) КАК ПродажиОбороты ПО ЗаказыПродавцовОстатки.Номенклатура = ПродажиОбороты.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентРаспределения КАК ПроцентРаспределения ПО ЗаказыПродавцовОстатки.Номенклатура = ПроцентРаспределения.Номенклатура |
|||
7
Ненавижу 1С
гуру
30.08.12
✎
10:40
|
(6) и какие данные перестают попадать?
это весь запрос? |
|||
8
vmv
30.08.12
✎
10:41
|
(6) сделай отдельные ВТ для каждой физической таблицы, проиндексировав по полям соединений и потом их соединяй
не тряси ерундой |
|||
9
Web00001
30.08.12
✎
10:43
|
(7)Весь, ТоварыВРозницеОстатки - отсюда пропадают остатки если есть данные в таблице заказы продавцов
|
|||
10
vmv
30.08.12
✎
10:43
|
+(8) на самом деле в (6) не 4-ре таблицы соединяються, а еще туева кучка служебных
|
|||
11
Web00001
30.08.12
✎
10:44
|
(8)жестокая жесть какая, а зачем?
|
|||
12
andrewks
30.08.12
✎
10:44
|
(11) быстродействие
|
|||
13
Ненавижу 1С
гуру
30.08.12
✎
10:45
|
(8) а если они и так имеют индексы?
|
|||
14
andrewks
30.08.12
✎
10:45
|
что именно и куда не попадает?
|
|||
15
Ненавижу 1С
гуру
30.08.12
✎
10:46
|
(9) может остатков нет? а если без связи складов не пропадают?
|
|||
16
andrewks
30.08.12
✎
10:47
|
вот параметрами виртуалок воспользоваться было бы неплохо
|
|||
17
Web00001
30.08.12
✎
10:53
|
(14) в (9)
(15) остатки есть, если убрать И в соединении получаем остатки на том складе на котором было движение, по регистру ЗаказыПродавцов, хотя это не так |
|||
18
Ненавижу 1С
гуру
30.08.12
✎
10:55
|
(17) а склады в самих регистрах то совпадают? ))
|
|||
19
alextom81
30.08.12
✎
11:17
|
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.ВидПродукции КАК ВидПродукции, | ВложенныйЗапрос.Номенклатура, | СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоОстаток, 0)) КАК КоличествоОстаток, | СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоПриход, 0)) КАК КоличествоПриход, | СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоЗаказано, 0)) КАК КоличествоЗаказано, | ЕстьNULL(ВложенныйЗапрос.Ко, 0) Как Ко |ИЗ | (ВЫБРАТЬ | НоменклатураДляЗаказа.Номенклатура КАК Номенклатура, | НоменклатураДляЗаказа.ВидПродукции КАК ВидПродукции, | ЕСТЬNULL(ТоварыВРозницеОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ТоварыВРозницеОбороты.КоличествоПриход, 0) КАК КоличествоПриход, | ЕСТЬNULL(УДС_ТоварыЗаказанныеМагазиномОбороты.КоличествоПриход, 0) КАК КоличествоЗаказано, | НоменклатураДляЗаказа.КоличествоКГВМесте КАК Ко | ИЗ | РегистрСведений.НоменклатураДляЗаказа КАК НоменклатураДляЗаказа | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Склад = &Склад) КАК ТоварыВРозницеОстатки | ПО НоменклатураДляЗаказа.Номенклатура = ТоварыВРозницеОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Обороты(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), День, Склад = Склад) КАК ТоварыВРозницеОбороты | ПО НоменклатураДляЗаказа.Номенклатура = ТоварыВРозницеОбороты.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УДС_ТоварыЗаказанныеМагазином.Обороты(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), День, Магазин = &склад) КАК ТоварыЗаказанныеМагазиномОбороты | ПО УДС_НоменклатураДляЗаказа.Номенклатура = ТоварыЗаказанныеМагазиномОбороты.Номенклатура) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.ВидПродукции, | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Ко | |УПОРЯДОЧИТЬ ПО | ВидПродукции |ИТОГИ ПО | ВидПродукции"; |
|||
20
alextom81
30.08.12
✎
11:18
|
НоменклатураДляЗаказа - регистр сведений, по которому идут все дальнейшие соединения. Потом красиво в дерево значений выводиться
|
|||
21
Web00001
30.08.12
✎
11:41
|
(19)В каком месте связь одной таблицы по двум полям? Не могу найти
|
|||
22
Web00001
30.08.12
✎
11:45
|
что такое УДС_НоменклатураДляЗаказа?
|
|||
23
Ненавижу 1С
гуру
30.08.12
✎
11:52
|
так что с (18)?
|
|||
24
Web00001
30.08.12
✎
11:57
|
(23)Ты имеешь ввиду на тех ли складах лежат остатки? Да там все нормально, берешь делаешь движение по регистру заказыПродавцов, на нужный склад и на этот склад сразу попадают остатки, берешь документ меняешь склад, остатки переезжают
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |