|
v8: Помогите найти ошибку в связи таблиц через ОБЪЕДИНИТЬ ВСЕ | ☑ | ||
---|---|---|---|---|
0
Saengmyung
01.08.14
✎
12:34
|
Здравствуйте!
Помогите, пожалуйста, исправить непонятки в коде запроса. Проблема в том, что суммы неверные,больше, чем нужно, а иногда и в разы. При чем, когда я вместо ОБЪЕДИНИТЬ ВСЕ ставлю обычный разделитель запросов из точки/запятой и слеша, то данные правильные. [CODE]ВЫБРАТЬ НАШИ_Заказы.Договор КАК ДоговорСчёта, МИНИМУМ(НАШИ_Заказы.ДатаУчета) КАК ДатаПервогоВыхода ПОМЕСТИТЬ ТаблицаВсехСчетов ИЗ РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы ГДЕ НАШИ_Заказы.Пользователь В ИЕРАРХИИ(&ВыбрМенеджер) И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу) СГРУППИРОВАТЬ ПО НАШИ_Заказы.Договор ИМЕЮЩИЕ МАКСИМУМ(НАШИ_Заказы.ДатаУчета) >= &ДатаНач ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаВсехСчетов.ДоговорСчёта, ВЫБОР КОГДА ЕСТЬNULL(ПодзапросСтарыеКлиенты.ТипКлиента, "Новый") = "Новый" ТОГДА "Новый" ИНАЧЕ "Старый" КОНЕЦ КАК ТипКлиента, НАШИ_Заказы.Контрагент КАК Контрагент, НАШИ_Заказы.Пользователь КАК Менеджер, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета, ТаблицаВсехСчетов.ДатаПервогоВыхода, СУММА(НАШИ_Заказы.Сумма) КАК Сумма, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.НомерСтрокиСчета, НАШИ_Заказы.СпецПроектТариф ПОМЕСТИТЬ ТаблицаСчетов ИЗ ТаблицаВсехСчетов КАК ТаблицаВсехСчетов ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы ПО ТаблицаВсехСчетов.ДоговорСчёта = НАШИ_Заказы.Договор ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ "Старый" КАК ТипКлиента, НАШИ_РазмещениеРекламыОбороты.Клиент КАК Клиент, НАШИ_РазмещениеРекламыОбороты.МестоРазмещения.ИзданиеНАШИ КАК ИзданиеНАШИ ИЗ РегистрНакопления.НАШИ_РазмещениеРекламы.Обороты(&ДатаНачСтарогоКлиента, &ДатаКонСтарогоКлиента, , ) КАК НАШИ_РазмещениеРекламыОбороты ГДЕ НАШИ_РазмещениеРекламыОбороты.МестоРазмещения.ИзданиеНАШИ = ИСТИНА СГРУППИРОВАТЬ ПО НАШИ_РазмещениеРекламыОбороты.Клиент, НАШИ_РазмещениеРекламыОбороты.МестоРазмещения.ИзданиеНАШИ) КАК ПодзапросСтарыеКлиенты ПО ТаблицаВсехСчетов.ДоговорСчёта.Владелец = ПодзапросСтарыеКлиенты.Клиент ГДЕ НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу) СГРУППИРОВАТЬ ПО ТаблицаВсехСчетов.ДоговорСчёта, ВЫБОР КОГДА ЕСТЬNULL(ПодзапросСтарыеКлиенты.ТипКлиента, "Новый") = "Новый" ТОГДА "Новый" ИНАЧЕ "Старый" КОНЕЦ, НАШИ_Заказы.Пользователь, НАШИ_Заказы.Контрагент, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета, ТаблицаВсехСчетов.ДатаПервогоВыхода, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.НомерСтрокиСчета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАШИ_Заказы.Договор КАК ДоговорСчёта, СУММА(ЕСТЬNULL(НАШИ_Заказы.СуммаБезНДС, 0)) КАК СуммаОтгрузки, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета, НАШИ_Заказы.НомерСтрокиСчета, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.Номенклатура ПОМЕСТИТЬ ТаблицаОтгрузки ИЗ РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы ГДЕ НАШИ_Заказы.Договор В (ВЫБРАТЬ ТаблицаСчетов.ДоговорСчёта ИЗ ТаблицаСчетов) И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу) И НАШИ_Заказы.ДатаУчета >= &ДатаНач И НАШИ_Заказы.ДатаУчета <= &ДатаКон СГРУППИРОВАТЬ ПО НАШИ_Заказы.Договор, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.НомерСтрокиСчета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАШИ_Заказы.Договор КАК ДоговорСчёта, СУММА(ЕСТЬNULL(НАШИ_Заказы.Сумма, 0)) КАК СуммаСальдоН, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.НомерСтрокиСчета, НАШИ_Заказы.СпецПроектТариф ПОМЕСТИТЬ ТаблицаСальдо ИЗ РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы ГДЕ НАШИ_Заказы.Договор В (ВЫБРАТЬ ТаблицаСчетов.ДоговорСчёта ИЗ ТаблицаСчетов) И НАШИ_Заказы.ДатаУчета < &ДатаНач И НАШИ_Заказы.Статус В(&СписокСтатусовВРаботу) СГРУППИРОВАТЬ ПО НАШИ_Заказы.Договор, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.НомерСтрокиСчета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАШИ_Заказы.Договор, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.НомерСтрокиСчета, НАШИ_Заказы.СпецПроектТариф, РАЗНОСТЬДАТ(МИНИМУМ(НАШИ_Заказы.СайтПериодС), МАКСИМУМ(НАШИ_Заказы.СайтПериодПо), ЧАС) / 24 + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАШИ_Заказы.ДатаУчета) КАК ДниВыходов, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.ДатаУчета ПОМЕСТИТЬ Выходы ИЗ РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы СГРУППИРОВАТЬ ПО НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.ДатаУчета, НАШИ_Заказы.НомерСтрокиСчета, НАШИ_Заказы.Договор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАШИ_Заказы.Договор, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.НомерСтрокиСчета, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.ДатаУчета КАК Месяц, НАШИ_Заказы.МестоРазмещения ПОМЕСТИТЬ Месяцы ИЗ РегистрСведений.НАШИ_Заказы КАК НАШИ_Заказы СГРУППИРОВАТЬ ПО НАШИ_Заказы.Договор, НАШИ_Заказы.Номенклатура, НАШИ_Заказы.СпецПроектТариф, НАШИ_Заказы.ДатаУчета, НАШИ_Заказы.МестоРазмещения, НАШИ_Заказы.НомерСтрокиСчета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаСчетов.ДоговорСчёта, ТаблицаСчетов.ТипКлиента, ТаблицаСчетов.Контрагент, ТаблицаСчетов.Менеджер, ТаблицаСчетов.МестоРазмещения, ТаблицаСчетов.ДатаУчета КАК ДатаУчета, ТаблицаСчетов.ДатаПервогоВыхода, СУММА(ТаблицаСчетов.Сумма) КАК Сумма, СУММА(ЕСТЬNULL(ТаблицаСальдо.СуммаСальдоН, 0)) КАК СуммаСальдоН, СУММА(ЕСТЬNULL(ТаблицаОтгрузки.СуммаОтгрузки, 0)) КАК СуммаОтгрузки, СУММА(Выходы.ДниВыходов) КАК ДниВыходов, 0 КАК Номенклатура, 0 КАК НомерСтрокиСчета, 0 КАК Месяц, 0 КАК СпецПроектТариф ИЗ ТаблицаСчетов КАК ТаблицаСчетов ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтгрузки КАК ТаблицаОтгрузки ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаОтгрузки.ДоговорСчёта И ТаблицаСчетов.МестоРазмещения = ТаблицаОтгрузки.МестоРазмещения И ТаблицаСчетов.ДатаУчета = ТаблицаОтгрузки.ДатаУчета И ТаблицаСчетов.Номенклатура = ТаблицаОтгрузки.Номенклатура И ТаблицаСчетов.СпецПроектТариф = ТаблицаОтгрузки.СпецПроектТариф И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаОтгрузки.НомерСтрокиСчета ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСальдо КАК ТаблицаСальдо ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаСальдо.ДоговорСчёта И ТаблицаСчетов.МестоРазмещения = ТаблицаСальдо.МестоРазмещения И ТаблицаСчетов.ДатаУчета = ТаблицаСальдо.ДатаУчета И ТаблицаСчетов.Номенклатура = ТаблицаСальдо.Номенклатура И ТаблицаСчетов.СпецПроектТариф = ТаблицаСальдо.СпецПроектТариф И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаСальдо.НомерСтрокиСчета ЛЕВОЕ СОЕДИНЕНИЕ Выходы КАК Выходы ПО ТаблицаСчетов.Номенклатура = Выходы.Номенклатура И ТаблицаСчетов.МестоРазмещения = Выходы.МестоРазмещения И ТаблицаСчетов.НомерСтрокиСчета = Выходы.НомерСтрокиСчета И ТаблицаСчетов.СпецПроектТариф = Выходы.СпецПроектТариф И ТаблицаСчетов.ДатаУчета = Выходы.ДатаУчета И ТаблицаСчетов.ДоговорСчёта = Выходы.Договор СГРУППИРОВАТЬ ПО ТаблицаСчетов.ДоговорСчёта, ТаблицаСчетов.ТипКлиента, ТаблицаСчетов.Контрагент, ТаблицаСчетов.Менеджер, ТаблицаСчетов.МестоРазмещения, ТаблицаСчетов.ДатаУчета, ТаблицаСчетов.ДатаПервогоВыхода ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаСчетов.ДоговорСчёта, ТаблицаСчетов.ТипКлиента, ТаблицаСчетов.Контрагент, ТаблицаСчетов.Менеджер, ТаблицаСчетов.МестоРазмещения, ТаблицаСчетов.ДатаУчета, ТаблицаСчетов.ДатаПервогоВыхода, СУММА(ТаблицаСчетов.Сумма), СУММА(ЕСТЬNULL(ТаблицаСальдо.СуммаСальдоН, 0)), СУММА(ЕСТЬNULL(ТаблицаОтгрузки.СуммаОтгрузки, 0)), 0, Месяцы.Номенклатура, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Месяцы.НомерСтрокиСчета), КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(Месяцы.Месяц)), Месяцы.СпецПроектТариф ИЗ ТаблицаСчетов КАК ТаблицаСчетов ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтгрузки КАК ТаблицаОтгрузки ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаОтгрузки.ДоговорСчёта И ТаблицаСчетов.МестоРазмещения = ТаблицаОтгрузки.МестоРазмещения И ТаблицаСчетов.ДатаУчета = ТаблицаОтгрузки.ДатаУчета И ТаблицаСчетов.Номенклатура = ТаблицаОтгрузки.Номенклатура И ТаблицаСчетов.СпецПроектТариф = ТаблицаОтгрузки.СпецПроектТариф И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаОтгрузки.НомерСтрокиСчета ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСальдо КАК ТаблицаСальдо ПО ТаблицаСчетов.ДоговорСчёта = ТаблицаСальдо.ДоговорСчёта И ТаблицаСчетов.МестоРазмещения = ТаблицаСальдо.МестоРазмещения И ТаблицаСчетов.ДатаУчета = ТаблицаСальдо.ДатаУчета И ТаблицаСчетов.Номенклатура = ТаблицаСальдо.Номенклатура И ТаблицаСчетов.СпецПроектТариф = ТаблицаСальдо.СпецПроектТариф И ТаблицаСчетов.НомерСтрокиСчета = ТаблицаСальдо.НомерСтрокиСчета ЛЕВОЕ СОЕДИНЕНИЕ Месяцы КАК Месяцы ПО ТаблицаСчетов.НомерСтрокиСчета = Месяцы.НомерСтрокиСчета И ТаблицаСчетов.Номенклатура = Месяцы.Номенклатура И ТаблицаСчетов.СпецПроектТариф = Месяцы.СпецПроектТариф И ТаблицаСчетов.МестоРазмещения = Месяцы.МестоРазмещения И ТаблицаСчетов.ДоговорСчёта = Месяцы.Договор И ТаблицаСчетов.ДатаУчета = Месяцы.Месяц СГРУППИРОВАТЬ ПО ТаблицаСчетов.ДоговорСчёта, ТаблицаСчетов.ТипКлиента, ТаблицаСчетов.Контрагент, ТаблицаСчетов.Менеджер, ТаблицаСчетов.МестоРазмещения, ТаблицаСчетов.ДатаУчета, ТаблицаСчетов.ДатаПервогоВыхода, Месяцы.Номенклатура, Месяцы.СпецПроектТариф УПОРЯДОЧИТЬ ПО ДатаУчета [/CODE] |
|||
1
Godofsin
01.08.14
✎
12:41
|
мде... бей запросы на части и ищи
|
|||
2
Saengmyung
01.08.14
✎
13:04
|
Так я и била.
По отдельности, без ОБЪЕДИНИТЬ ВСЕ все нормально работает, данные верны. |
|||
3
Ёпрст
01.08.14
✎
13:06
|
упорядочивание выкинь
|
|||
4
Ёпрст
01.08.14
✎
13:08
|
ну и
0 КАК Номенклатура, тоже не комильфо, либо null туда пихай, либо пустую ссылку нужного справочника. |
|||
5
Saengmyung
01.08.14
✎
13:09
|
и упорядочивание выкидывала(
|
|||
6
Defender aka LINN
01.08.14
✎
13:11
|
С точкой и запятой у тебя 2 запроса, с объединить - 1.
У тебя все еще есть вопросы почему результаты разные? |
|||
7
Ёпрст
01.08.14
✎
13:12
|
ну и брать надо не Месяцы.Номенклатура, а ТаблицаСчетов.Номенклатура
|
|||
8
Saengmyung
01.08.14
✎
13:16
|
(6) честно, я Вас не поняла.
|
|||
9
Ёпрст
01.08.14
✎
13:20
|
(8)
есть 2 запроса, по отдельности, если их выполнять через ";; это 2 результата: вася 100 и вася 300 ежели через объединить все - это 1 результат: вася 100 вася 300 вы какие суммы глядите и как это проверяете. что у вас некие суммы в астрале ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |