Вход | Регистрация



Запрос. Две таблицы, но связь между ними через третью.

Запрос. Две таблицы, но связь между ними через третью.
Я
   ermola
 
20.12.17 - 09:56
Доброго.
Помогите с запросом.
Получилось две временные таблицы, но это неважно наверно.
В каждой таблице по два поля, типа ссылка на справочник и некое число.
Есть регистр сведений в котором забито соответствие между ссылками из первой и второй таблицами.
То есть где-то так.
Таблица один.
СправочникСсылка1, Количество1.
Таблица два
СправочникСсылка2, Количество2.
Таблица три
СправочникСсылка1, СправочникСсылка2

В итоге надо получить
СправочникСсылка1,СпрвочникСсылка2, Количество1,Количество2
где по таблице три СпрвочникСсылка1 = СправочникСсылка2

Спасибо
 
 
   ils108
 
1 - 20.12.17 - 10:08
т.е. сами "Ссылки" 1-го и 2-го отличаются?
   ermola
 
2 - 20.12.17 - 10:13
Да, разные справочники.
   Ненавижу 1С
 
3 - 20.12.17 - 10:14
ИЗ Третья Т
левое соединение Первая П по Т.Ссылка1=П.Ссылка1
левое соединение Вторая В по Т.Ссылка2=В.Ссылка2
   ils108
 
4 - 20.12.17 - 10:18
(3) а зачем левое, почему не внутреннее?
   ermola
 
5 - 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 при выборке из регистра
   ermola
 
9 - 20.12.17 - 10:48
По отделенности запросы мне нормальные данные показывают, в пакете бред.
   ils108
 
10 - 20.12.17 - 10:53
текст запроса положите сюда
 
 Рекламное место пустует
   ermola
 
11 - 20.12.17 - 10:58
ВЫБРАТЬ РАЗЛИЧНЫЕ
    алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.Номенклатура
ПОМЕСТИТЬ Номеклатура
ИЗ
    Документ.алкФиксацияОстатковЕГАИС.Товары КАК алкФиксацияОстатковЕГАИСТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры КАК алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры
        ПО алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция = алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.АлкогольнаяПродукция
ГДЕ
    алкФиксацияОстатковЕГАИСТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Номеклатура.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ПОМЕСТИТЬ Остатки_По_Базе
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДокДата, &ДокДата, , , ) КАК ТоварыНаСкладахОстаткиИОбороты,
    Номеклатура КАК Номеклатура
ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Номеклатура.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция,
    СУММА(алкФиксацияОстатковЕГАИСТовары.Количество) КАК Количество
ПОМЕСТИТЬ Остатки_По_ЕГАИС
ИЗ
    Документ.алкФиксацияОстатковЕГАИС.Товары КАК алкФиксацияОстатковЕГАИСТовары
ГДЕ
    алкФиксацияОстатковЕГАИСТовары.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Остатки_По_Базе.Номенклатура,
    Остатки_По_ЕГАИС.АлкогольнаяПродукция,
    Остатки_По_Базе.КоличествоКонечныйОстаток,
    Остатки_По_ЕГАИС.Количество
ИЗ
    Остатки_По_Базе КАК Остатки_По_Базе
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры КАК алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры
            ЛЕВОЕ СОЕДИНЕНИЕ Остатки_По_ЕГАИС КАК Остатки_По_ЕГАИС
            ПО алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.АлкогольнаяПродукция = Остатки_По_ЕГАИС.АлкогольнаяПродукция
        ПО алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.Номенклатура = Остатки_По_Базе.Номенклатура
   hhhh
 
12 - 20.12.17 - 11:02
(11) вот это
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры КАК алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры
        ПО алкФиксацияОстатковЕГАИСТовары.АлкогольнаяПродукция = алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры.АлкогольнаяПродукция


что-то бред какой-то. Откуда такое соединение? И где номенклатура здесь?
   ermola
 
13 - 20.12.17 - 11:22
А ее там нет.
Два разных справочника используется. Для алкогольного блока свой, для оставленной базы свой.
И для их согласования РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры
   Вафель
 
14 - 20.12.17 - 11:25
соответствие 1к1 ?
   ermola
 
15 - 20.12.17 - 11:36
Нет.
   Вафель
 
16 - 20.12.17 - 11:37
(15) тогда задача не решается по простому. можно только "сводно" остатки проверять.
   ermola
 
17 - 20.12.17 - 12:21
Да, задница.
А задача значит такая.
Есть док, фиксация остатков в ЕГАИС, грубо говоря в нем три поля, Справочник.Алкокод, Справка некая, и Количество.
Его надо собрать Справочник.Алкокод по сумме Количество.
Дальше нужны остатки, на дату.
Тут уже Справочник.Номенклатура и КонечныйОстаток.
А соответствие по справочникам в РегистрСведений.алкСоответствияАлкогольнойПродукцииЕГАИСИНоменклатуры
Причем количество соответствий на один алкокод(он в принципе уникален) из справочника номенклатура может как не быть, так и быть несколько.
Вот такая засада.
   Вафель
 
18 - 20.12.17 - 12:22
(17) а в обратную сторону может быть? 1 номенклатура, но несколько кодов?
   ermola
 
19 - 20.12.17 - 12:26
(18) Нет. Код уникален. Может вообще не быть. То есть связь не устанавливали.
   Вафель
 
20 - 20.12.17 - 12:30
тогда тебе нужно остатки по номенклатуре свернуть до кодам, а потом уже соединять с таблицей остатков кодов
   Вафель
 
21 - 20.12.17 - 12:31
если нужен только отчет, то можно в скд через объединение сделать, тогда и коды и номенклатура будут видны
   ermola
 
22 - 20.12.17 - 12:32
Не вкурил.
   Вафель
 
23 - 20.12.17 - 12:34
1 таблица: ном, Алк, остаток, 0
2 таблица: null, Алк, 0,  остаток
   Вафель
 
24 - 20.12.17 - 12:34
и 2 группировки Алк и Ном
   ermola
 
25 - 20.12.17 - 13:17
А не так случаем
1 таблица: ном, null, остаток, 0
2 таблица: null, Алк, 0,  остаток


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует