8.х Ошибки в запросе в связи таблиц через ОБЪЕДИНИТЬ ВСЕ

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Saengmyung, 1 авг 2014.

  1. TopicStarter Overlay
    Saengmyung
    Offline

    Saengmyung

    Регистрация:
    8 окт 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Помогите, пожалуйста, исправить непонятки в коде запроса.
    Проблема в том, что суммы неверные,больше, чем нужно, а иногда и в разы.
    При чем, когда я вместо ОБЪЕДИНИТЬ ВСЕ ставлю обычный разделитель запросов из точки/запятой и слеша, то данные правильные.

    Код:
    ВЫБРАТЬ
    НАШИ_Заказы.Договор КАК ДоговорСчёта,
    МИНИМУМ(НАШИ_Заказы.ДатаУчета) КАК ДатаПервогоВыхода
    ПОМЕСТИТЬ ТаблицаВсехСчетов
    ИЗ
    РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы
    ГДЕ
    НАШИ_Заказы.Пользователь В ИЕРАРХИИ(&ВыбрМенеджер)
    И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу)
    И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу)
    СГРУППИРОВАТЬ ПО
    НАШИ_Заказы.Договор,
    НАШИ_Заказы.МестоРазмещения,
    НАШИ_Заказы.ДатаУчета,
    НАШИ_Заказы.Номенклатура,
    НАШИ_Заказы.СпецПроектТариф,
    НАШИ_Заказы.НомерСтрокиСчета
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    НАШИ_Заказы.Договор,
    НАШИ_Заказы.Номенклатура,
    НАШИ_Заказы.НомерСтрокиСчета,
    НАШИ_Заказы.СпецПроектТариф,
    РАЗНОСТЬДАТ(МИНИМУМ(НАШИ_Заказы.СайтПериодС), МАКСИМУМ(НАШИ_Заказы.СайтПериодПо), ЧАС) / 24 + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАШИ_Заказы.ДатаУчета) КАК ДниВыходов,
    НАШИ_Заказы.МестоРазмещения,
    НАШИ_Заказы.ДатаУчета
    ПОМЕСТИТЬ Выходы
    ИЗ
    РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы
    СГРУППИРОВАТЬ ПО
    НАШИ_Заказы.МестоРазмещения,
    НАШИ_Заказы.Номенклатура,
    НАШИ_Заказы.СпецПроектТариф,
    НАШИ_Заказы.ДатаУчета,
    НАШИ_Заказы.НомерСтрокиСчета,
    НАШИ_Заказы.Договор
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    НАШИ_Заказы.Договор,
    НАШИ_Заказы.Номенклатура,
    НАШИ_Заказы.НомерСтрокиСчета,
    НАШИ_Заказы.СпецПроектТариф,
    НАШИ_Заказы.ДатаУчета КАК Месяц,
    НАШИ_Заказы.МестоРазмещения
    ПОМЕСТИТЬ Месяцы
    ИЗ
    РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы
    СГРУППИРОВАТЬ ПО
    НАШИ_Заказы.Договор,
    НАШИ_Заказы.Номенклатура,
    НАШИ_Заказы.СпецПроектТариф,
    НАШИ_Заказы.ДатаУчета,
    НАШИ_Заказы.МестоРазмещения,
    НАШИ_Заказы.НомерСтрокиСчета
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ТаблицаСчетов.ДоговорСчёта,
    ТаблицаСчетов.ТипКлиента,
    ТаблицаСчетов.Контрагент,
    ТаблицаСчетов.Менеджер,
    ТаблицаСчетов.МестоРазмещения,
    ТаблицаСчетов.ДатаУчета КАК ДатаУчета,
    ТаблицаСчетов.ДатаПервогоВыхода,
    СУММА(ТаблицаСчетов.Сумма) КАК Сумма,
    СУММА(ЕСТЬNULL(ТаблицаСальдо.СуммаСальдоН, 0)) КАК СуммаСальдоН,
    СУММА(ЕСТЬNULL(ТаблицаОтгрузки.СуммаОтгрузки, 0)) КАК СуммаОтгрузки,
    СУММА(Выходы.ДниВыходов) КАК ДниВыходов,
    0 КАК Номенклатура,
    0 КАК НомерСтрокиСчета,
    0 КАК Месяц,
    0 КАК СпецПроектТариф
    ИЗ
    ТаблицаСчетов КАК ТаблицаСчетов
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтгрузки КАК ТаблицаОтгрузки
    ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаОтгрузки.ДоговорСчёта
    И ТаблицаСчетов.МестоРазмещения = ТаблицаОтгрузки.МестоРазмещения
    И ТаблицаСчетов.ДатаУчета = ТаблицаОтгрузки.ДатаУчета
    И ТаблицаСчетов.Номенклатура = ТаблицаОтгрузки.Номенклатура
    И ТаблицаСчетов.СпецПроектТариф = ТаблицаОтгрузки.СпецПроектТариф
    И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаОтгрузки.НомерСтрокиСчета
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСальдо КАК ТаблицаСальдо
    ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаСальдо.ДоговорСчёта
    И ТаблицаСчетов.МестоРазмещения = ТаблицаСальдо.МестоРазмещения
    И ТаблицаСчетов.ДатаУчета = ТаблицаСальдо.ДатаУчета
    И ТаблицаСчетов.Номенклатура = ТаблицаСальдо.Номенклатура
    И ТаблицаСчетов.СпецПроектТариф = ТаблицаСальдо.СпецПроектТариф
    И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаСальдо.НомерСтрокиСчета
    ЛЕВОЕ СОЕДИНЕНИЕ Выходы КАК Выходы
    ПО ТаблицаСчетов.Номенклатура = Выходы.Номенклатура
    И ТаблицаСчетов.МестоРазмещения = Выходы.МестоРазмещения
    И ТаблицаСчетов.НомерСтрокиСчета = Выходы.НомерСтрокиСчета
    И ТаблицаСчетов.СпецПроектТариф = Выходы.СпецПроектТариф
    И ТаблицаСчетов.ДатаУчета = Выходы.ДатаУчета
    И ТаблицаСчетов.ДоговорСчёта = Выходы.Договор
    СГРУППИРОВАТЬ ПО
    ТаблицаСчетов.ДоговорСчёта,
    ТаблицаСчетов.ТипКлиента,
    ТаблицаСчетов.Контрагент,
    ТаблицаСчетов.Менеджер,
    ТаблицаСчетов.МестоРазмещения,
    ТаблицаСчетов.ДатаУчета,
    ТаблицаСчетов.ДатаПервогоВыхода
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ
    ТаблицаСчетов.ДоговорСчёта,
    ТаблицаСчетов.ТипКлиента,
    ТаблицаСчетов.Контрагент,
    ТаблицаСчетов.Менеджер,
    ТаблицаСчетов.МестоРазмещения,
    ТаблицаСчетов.ДатаУчета,
    ТаблицаСчетов.ДатаПервогоВыхода,
    СУММА(ТаблицаСчетов.Сумма),
    СУММА(ЕСТЬNULL(ТаблицаСальдо.СуммаСальдоН, 0)),
    СУММА(ЕСТЬNULL(ТаблицаОтгрузки.СуммаОтгрузки, 0)),
    0,
    Месяцы.Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Месяцы.НомерСтрокиСчета),
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(Месяцы.Месяц)),
    Месяцы.СпецПроектТариф
    ИЗ
    ТаблицаСчетов КАК ТаблицаСчетов
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтгрузки КАК ТаблицаОтгрузки
    ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаОтгрузки.ДоговорСчёта
    И ТаблицаСчетов.МестоРазмещения = ТаблицаОтгрузки.МестоРазмещения
    И ТаблицаСчетов.ДатаУчета = ТаблицаОтгрузки.ДатаУчета
    И ТаблицаСчетов.Номенклатура = ТаблицаОтгрузки.Номенклатура
    И ТаблицаСчетов.СпецПроектТариф = ТаблицаОтгрузки.СпецПроектТариф
    И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаОтгрузки.НомерСтрокиСчета
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСальдо КАК ТаблицаСальдо
    ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаСальдо.ДоговорСчёта
    И ТаблицаСчетов.МестоРазмещения = ТаблицаСальдо.МестоРазмещения
    И ТаблицаСчетов.ДатаУчета = ТаблицаСальдо.ДатаУчета
    И ТаблицаСчетов.Номенклатура = ТаблицаСальдо.Номенклатура
    И ТаблицаСчетов.СпецПроектТариф = ТаблицаСальдо.СпецПроектТариф
    И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаСальдо.НомерСтрокиСчета
    ЛЕВОЕ СОЕДИНЕНИЕ Месяцы КАК Месяцы
    ПО ТаблицаСчетов.НомерСтрокиСчета = Месяцы.НомерСтрокиСчета
    И ТаблицаСчетов.Номенклатура = Месяцы.Номенклатура
    И ТаблицаСчетов.СпецПроектТариф = Месяцы.СпецПроектТариф
    И ТаблицаСчетов.МестоРазмещения = Месяцы.МестоРазмещения
    И ТаблицаСчетов.ДоговорСчёта = Месяцы.Договор
    И ТаблицаСчетов.ДатаУчета = Месяцы.Месяц
    СГРУППИРОВАТЬ ПО
    ТаблицаСчетов.ДоговорСчёта,
    ТаблицаСчетов.ТипКлиента,
    ТаблицаСчетов.Контрагент,
    ТаблицаСчетов.Менеджер,
    ТаблицаСчетов.МестоРазмещения,
    ТаблицаСчетов.ДатаУчета,
    ТаблицаСчетов.ДатаПервогоВыхода,
    Месяцы.Номенклатура,
    Месяцы.СпецПроектТариф
    УПОРЯДОЧИТЬ ПО
    ДатаУчета
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну так трудно сказать - ставьте точно задаучу - что есть и что надо получить. а то все задача. Есть суммы маленькие, есть большие, большие неправильно...

Поделиться этой страницей