PDA

Просмотр полной версии : Ошибка в связи таблиц через ОБЪЕДИНИТЬ ВСЕ



Saengmyung
01.08.2014, 13:57
Помогите, пожалуйста, исправить непонятки в коде запроса.
Проблема в том, что суммы неверные,больше, чем нужно, а иногда и в разы.
При чем, когда я вместо ОБЪЕДИНИТЬ ВСЕ ставлю обычный разделитель запросов из точки/запятой и слеша, то данные правильные.
ВЫБРАТЬ
НАШИ_Заказы.Договор КАК ДоговорСчёта,
МИНИМУМ(НАШИ_Заказы.ДатаУч� �та) КАК ДатаПервогоВыхода
ПОМЕСТИТЬ ТаблицаВсехСчетов
ИЗ
РегистрСведений.НАШИ_Заказ ы КАК НАШИ_Заказы
ГДЕ
НАШИ_Заказы.Пользователь В ИЕРАРХИИ(&ВыбрМенеджер)
И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу)
И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу)

СГРУППИРОВАТЬ ПО
НАШИ_Заказы.Договор,
НАШИ_Заказы.МестоРазмещени я,
НАШИ_Заказы.ДатаУчета,
НАШИ_Заказы.Номенклатура,
НАШИ_Заказы.СпецПроектТари ф,
НАШИ_Заказы.НомерСтрокиСче та
;

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

ВЫБРАТЬ
НАШИ_Заказы.Договор,
НАШИ_Заказы.Номенклатура,
НАШИ_Заказы.НомерСтрокиСче та,
НАШИ_Заказы.СпецПроектТари ф,
РАЗНОСТЬДАТ(МИНИМУМ(НАШИ_З� �казы.СайтПериодС), МАКСИМУМ(НАШИ_Заказы.СайтП� �риодПо), ЧАС) / 24 + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАШИ_Заказы.ДатаУчета) КАК ДниВыходов,
НАШИ_Заказы.МестоРазмещени я,
НАШИ_Заказы.ДатаУчета
ПОМЕСТИТЬ Выходы
ИЗ
РегистрСведений.НАШИ_Заказ ы КАК НАШИ_Заказы

СГРУППИРОВАТЬ ПО
НАШИ_Заказы.МестоРазмещени я,
НАШИ_Заказы.Номенклатура,
НАШИ_Заказы.СпецПроектТари ф,
НАШИ_Заказы.ДатаУчета,
НАШИ_Заказы.НомерСтрокиСче та,
НАШИ_Заказы.Договор
;

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

ВЫБРАТЬ
НАШИ_Заказы.Договор,
НАШИ_Заказы.Номенклатура,
НАШИ_Заказы.НомерСтрокиСче та,
НАШИ_Заказы.СпецПроектТари ф,
НАШИ_Заказы.ДатаУчета КАК Месяц,
НАШИ_Заказы.МестоРазмещени я
ПОМЕСТИТЬ Месяцы
ИЗ
РегистрСведений.НАШИ_Заказ ы КАК НАШИ_Заказы

СГРУППИРОВАТЬ ПО
НАШИ_Заказы.Договор,
НАШИ_Заказы.Номенклатура,
НАШИ_Заказы.СпецПроектТари ф,
НАШИ_Заказы.ДатаУчета,
НАШИ_Заказы.МестоРазмещени я,
НАШИ_Заказы.НомерСтрокиСче та
;

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

ВЫБРАТЬ
ТаблицаСчетов.ДоговорСчёт� �,
ТаблицаСчетов.ТипКлиента,
ТаблицаСчетов.Контрагент,
ТаблицаСчетов.Менеджер,
ТаблицаСчетов.МестоРазмещ� �ния,
ТаблицаСчетов.ДатаУчета КАК ДатаУчета,
ТаблицаСчетов.ДатаПервого� �ыхода,
СУММА(ТаблицаСчетов.Сумма) КАК Сумма,
СУММА(ЕСТЬNULL(ТаблицаСальдо .СуммаСальдоН, 0)) КАК СуммаСальдоН,
СУММА(ЕСТЬNULL(ТаблицаОтгруз ки.СуммаОтгрузки, 0)) КАК СуммаОтгрузки,
СУММА(Выходы.ДниВыходов) КАК ДниВыходов,
0 КАК Номенклатура,
0 КАК НомерСтрокиСчета,
0 КАК Месяц,
0 КАК СпецПроектТариф
ИЗ
ТаблицаСчетов КАК ТаблицаСчетов
ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтгрузки КАК ТаблицаОтгрузки
ПО ТаблицаСчетов.ДоговорСчёт� � = ТаблицаОтгрузки.ДоговорСч� �та
И ТаблицаСчетов.МестоРазмещ� �ния = ТаблицаОтгрузки.МестоРазм� �щения
И ТаблицаСчетов.ДатаУчета = ТаблицаОтгрузки.ДатаУчета
И ТаблицаСчетов.Номенклатур� � = ТаблицаОтгрузки.Номенклат� �ра
И ТаблицаСчетов.СпецПроектТ� �риф = ТаблицаОтгрузки.СпецПроек� �Тариф
И ТаблицаСчетов.НомерСтроки� �чета = ТаблицаОтгрузки.НомерСтро� �иСчета
ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСальдо КАК ТаблицаСальдо
ПО ТаблицаСчетов.ДоговорСчёт� � = ТаблицаСальдо.ДоговорСчёт� �
И ТаблицаСчетов.МестоРазмещ� �ния = ТаблицаСальдо.МестоРазмещ� �ния
И ТаблицаСчетов.ДатаУчета = ТаблицаСальдо.ДатаУчета
И ТаблицаСчетов.Номенклатур� � = ТаблицаСальдо.Номенклатур� �
И ТаблицаСчетов.СпецПроектТ� �риф = ТаблицаСальдо.СпецПроектТ� �риф
И ТаблицаСчетов.НомерСтроки� �чета = ТаблицаСальдо.НомерСтроки� �чета
ЛЕВОЕ СОЕДИНЕНИЕ Выходы КАК Выходы
ПО ТаблицаСчетов.Номенклатур� � = Выходы.Номенклатура
И ТаблицаСчетов.МестоРазмещ� �ния = Выходы.МестоРазмещения
И ТаблицаСчетов.НомерСтроки� �чета = Выходы.НомерСтрокиСчета
И ТаблицаСчетов.СпецПроектТ� �риф = Выходы.СпецПроектТариф
И ТаблицаСчетов.ДатаУчета = Выходы.ДатаУчета
И ТаблицаСчетов.ДоговорСчёт� � = Выходы.Договор

СГРУППИРОВАТЬ ПО
ТаблицаСчетов.ДоговорСчёт� �,
ТаблицаСчетов.ТипКлиента,
ТаблицаСчетов.Контрагент,
ТаблицаСчетов.Менеджер,
ТаблицаСчетов.МестоРазмещ� �ния,
ТаблицаСчетов.ДатаУчета,
ТаблицаСчетов.ДатаПервого� �ыхода

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ТаблицаСчетов.ДоговорСчёт� �,
ТаблицаСчетов.ТипКлиента,
ТаблицаСчетов.Контрагент,
ТаблицаСчетов.Менеджер,
ТаблицаСчетов.МестоРазмещ� �ния,
ТаблицаСчетов.ДатаУчета,
ТаблицаСчетов.ДатаПервого� �ыхода,
СУММА(ТаблицаСчетов.Сумма),
СУММА(ЕСТЬNULL(ТаблицаСальдо .СуммаСальдоН, 0)),
СУММА(ЕСТЬNULL(ТаблицаОтгруз ки.СуммаОтгрузки, 0)),
0,
Месяцы.Номенклатура,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Месяцы.НомерСтрокиСчета),
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(Месяцы.Месяц)),
Месяцы.СпецПроектТариф
ИЗ
ТаблицаСчетов КАК ТаблицаСчетов
ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтгрузки КАК ТаблицаОтгрузки
ПО ТаблицаСчетов.ДоговорСчёт� � = ТаблицаОтгрузки.ДоговорСч� �та
И ТаблицаСчетов.МестоРазмещ� �ния = ТаблицаОтгрузки.МестоРазм� �щения
И ТаблицаСчетов.ДатаУчета = ТаблицаОтгрузки.ДатаУчета
И ТаблицаСчетов.Номенклатур� � = ТаблицаОтгрузки.Номенклат� �ра
И ТаблицаСчетов.СпецПроектТ� �риф = ТаблицаОтгрузки.СпецПроек� �Тариф
И ТаблицаСчетов.НомерСтроки� �чета = ТаблицаОтгрузки.НомерСтро� �иСчета
ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСальдо КАК ТаблицаСальдо
ПО ТаблицаСчетов.ДоговорСчёт� � = ТаблицаСальдо.ДоговорСчёт� �
И ТаблицаСчетов.МестоРазмещ� �ния = ТаблицаСальдо.МестоРазмещ� �ния
И ТаблицаСчетов.ДатаУчета = ТаблицаСальдо.ДатаУчета
И ТаблицаСчетов.Номенклатур� � = ТаблицаСальдо.Номенклатур� �
И ТаблицаСчетов.СпецПроектТ� �риф = ТаблицаСальдо.СпецПроектТ� �риф
И ТаблицаСчетов.НомерСтроки� �чета = ТаблицаСальдо.НомерСтроки� �чета
ЛЕВОЕ СОЕДИНЕНИЕ Месяцы КАК Месяцы
ПО ТаблицаСчетов.НомерСтроки� �чета = Месяцы.НомерСтрокиСчета
И ТаблицаСчетов.Номенклатур� � = Месяцы.Номенклатура
И ТаблицаСчетов.СпецПроектТ� �риф = Месяцы.СпецПроектТариф
И ТаблицаСчетов.МестоРазмещ� �ния = Месяцы.МестоРазмещения
И ТаблицаСчетов.ДоговорСчёт� � = Месяцы.Договор
И ТаблицаСчетов.ДатаУчета = Месяцы.Месяц

СГРУППИРОВАТЬ ПО
ТаблицаСчетов.ДоговорСчёт� �,
ТаблицаСчетов.ТипКлиента,
ТаблицаСчетов.Контрагент,
ТаблицаСчетов.Менеджер,
ТаблицаСчетов.МестоРазмещ� �ния,
ТаблицаСчетов.ДатаУчета,
ТаблицаСчетов.ДатаПервого� �ыхода,
Месяцы.Номенклатура,
Месяцы.СпецПроектТариф

УПОРЯДОЧИТЬ ПО
ДатаУчета

Владислав80
10.08.2014, 23:16
"Обычный разделитель" запросов это пакетный запрос. Берите консоль, смотрите по каждому пакету отдельно, что возвращает.