|
Запрос. Две таблицы, но связь между ними через третью. | ☑ | ||
---|---|---|---|---|
0
ermola
20.12.17
✎
09:56
|
Доброго.
Помогите с запросом. Получилось две временные таблицы, но это неважно наверно. В каждой таблице по два поля, типа ссылка на справочник и некое число. Есть регистр сведений в котором забито соответствие между ссылками из первой и второй таблицами. То есть где-то так. Таблица один. СправочникСсылка1, Количество1. Таблица два СправочникСсылка2, Количество2. Таблица три СправочникСсылка1, СправочникСсылка2 В итоге надо получить СправочникСсылка1,СпрвочникСсылка2, Количество1,Количество2 где по таблице три СпрвочникСсылка1 = СправочникСсылка2 Спасибо |
|||
1
ils108
20.12.17
✎
10:08
|
т.е. сами "Ссылки" 1-го и 2-го отличаются?
|
|||
2
ermola
20.12.17
✎
10:13
|
Да, разные справочники.
|
|||
3
Ненавижу 1С
гуру
20.12.17
✎
10:14
|
ИЗ Третья Т
левое соединение Первая П по Т.Ссылка1=П.Ссылка1 левое соединение Вторая В по Т.Ссылка2=В.Ссылка2 |
|||
4
ils108
20.12.17
✎
10:18
|
(3) а зачем левое, почему не внутреннее?
|
|||
5
ermola
20.12.17
✎
10:31
|
(3) Спасибо. Получается красиво, в принципе чего хотелось, но по цифрам полный бред. Ладно пойду искать косяки.Видать не так запрос строю.
|
|||
6
Вафель
20.12.17
✎
10:32
|
(5) не забывай, что соединение может плодить дубли
|
|||
7
Фрэнки
20.12.17
✎
10:35
|
(5) а как стало понятно, что бред? может слишком много записей попало в итоговую выборку? Должно быть определен смысл по включению в выборку пустых под каждую пару Ссылка1 и Ссылка2. Хотя, по логике озвученной задачи эти поля пустыми оказываться не должны, но ничего не сказано о порядке заполнения регистра сведений соответствий
|
|||
8
Фрэнки
20.12.17
✎
10:37
|
и дубли парных Ссылка-Количество могут быть, также дубли Ссылка1-Ссылка2, и пустые Количества для Ссылка1 или Ссылка2 при выборке из регистра
|
|||
9
ermola
20.12.17
✎
10:48
|
По отделенности запросы мне нормальные данные показывают, в пакете бред.
|
|||
10
ils108
20.12.17
✎
10:53
|
текст запроса положите сюда
|
|||
11
ermola
20.12.17
✎
10:58
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.Номенклатура ПОМЕСТИТЬ Номеклатура ИЗ Документ.алкФиксацияОстатковЕГАИС.Товары КАК алкФиксацияОстатковЕГАИСТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры КАК алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры ПО алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция = алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.АлкогольнаяПродукция ГДЕ алкФиксацияОстатковЕГАИСТовары.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Номеклатура.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ПОМЕСТИТЬ Остатки_По_Базе ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДокДата, &ДокДата, , , ) КАК ТоварыНаСкладахОстаткиИОбороты, Номеклатура КАК Номеклатура ГДЕ ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Номеклатура.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция, СУММА(алкФиксацияОстатковЕГАИСТовары.Количество) КАК Количество ПОМЕСТИТЬ Остатки_По_ЕГАИС ИЗ Документ.алкФиксацияОстатковЕГАИС.Товары КАК алкФиксацияОстатковЕГАИСТовары ГДЕ алкФиксацияОстатковЕГАИСТовары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Остатки_По_Базе.Номенклатура, Остатки_По_ЕГАИС.АлкогольнаяПродукция, Остатки_По_Базе.КоличествоКонечныйОстаток, Остатки_По_ЕГАИС.Количество ИЗ Остатки_По_Базе КАК Остатки_По_Базе ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры КАК алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ Остатки_По_ЕГАИС КАК Остатки_По_ЕГАИС ПО алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.АлкогольнаяПродукция = Остатки_По_ЕГАИС.АлкогольнаяПродукция ПО алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.Номенклатура = Остатки_По_Базе.Номенклатура |
|||
12
hhhh
20.12.17
✎
11:02
|
(11) вот это
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры КАК алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры ПО алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция = алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.АлкогольнаяПродукция что-то бред какой-то. Откуда такое соединение? И где номенклатура здесь? |
|||
13
ermola
20.12.17
✎
11:22
|
А ее там нет.
Два разных справочника используется. Для алкогольного блока свой, для оставленной базы свой. И для их согласования РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры |
|||
14
Вафель
20.12.17
✎
11:25
|
соответствие 1к1 ?
|
|||
15
ermola
20.12.17
✎
11:36
|
Нет.
|
|||
16
Вафель
20.12.17
✎
11:37
|
(15) тогда задача не решается по простому. можно только "сводно" остатки проверять.
|
|||
17
ermola
20.12.17
✎
12:21
|
Да, задница.
А задача значит такая. Есть док, фиксация остатков в ЕГАИС, грубо говоря в нем три поля, Справочник.Алкокод, Справка некая, и Количество. Его надо собрать Справочник.Алкокод по сумме Количество. Дальше нужны остатки, на дату. Тут уже Справочник.Номенклатура и КонечныйОстаток. А соответствие по справочникам в РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры Причем количество соответствий на один алкокод(он в принципе уникален) из справочника номенклатура может как не быть, так и быть несколько. Вот такая засада. |
|||
18
Вафель
20.12.17
✎
12:22
|
(17) а в обратную сторону может быть? 1 номенклатура, но несколько кодов?
|
|||
19
ermola
20.12.17
✎
12:26
|
(18) Нет. Код уникален. Может вообще не быть. То есть связь не устанавливали.
|
|||
20
Вафель
20.12.17
✎
12:30
|
тогда тебе нужно остатки по номенклатуре свернуть до кодам, а потом уже соединять с таблицей остатков кодов
|
|||
21
Вафель
20.12.17
✎
12:31
|
если нужен только отчет, то можно в скд через объединение сделать, тогда и коды и номенклатура будут видны
|
|||
22
ermola
20.12.17
✎
12:32
|
Не вкурил.
|
|||
23
Вафель
20.12.17
✎
12:34
|
1 таблица: ном, Алк, остаток, 0
2 таблица: null, Алк, 0, остаток |
|||
24
Вафель
20.12.17
✎
12:34
|
и 2 группировки Алк и Ном
|
|||
25
ermola
20.12.17
✎
13:17
|
А не так случаем
1 таблица: ном, null, остаток, 0 2 таблица: null, Алк, 0, остаток |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |