|
Объединение таблиц в запросе | ☑ | ||
---|---|---|---|---|
0
sonGodv
12.02.16
✎
12:01
|
Коллеги, прошу помочь в такой ситуации:
В запросе надо объединить две таблицы, но из одной надо взять все строки а из другой только одну строку. Как пример: Регистр продажи, из него берем - Номенклатура, Заказ, Сумма Регистр Расчеты с клиентами, из него берем - Заказ, Сумма Связь по Заказу. Но из первой таблицы мне нужны все строки а из второй только одну Ботинки Заказ №1 15р Заказ №1 60р Сапоги Заказ №1 10р Туфли Заказ №1 50р Сейчас получается только так: Ботинки Заказ №1 15р Заказ №1 60р Сапоги Заказ №1 10р Заказ №1 60р Туфли Заказ №1 50р Заказ №1 60р |
|||
1
Одинесю
12.02.16
✎
12:03
|
(0) Потому что ты соединяешь, а не объединяешь.
|
|||
2
sonGodv
12.02.16
✎
12:07
|
(1) Пробовал разные варианты
|
|||
3
Одинесю
12.02.16
✎
12:16
|
Пример:
ВЫБРАТЬ Регистр1.Номенклатура КАК Номенклатура, Регистр1.Заказ КАК Заказ, СУММА (Регистр1.Сумма) КАК Сумма, ИЗ РегистрНакопления.РегистрПродажи КАК Регистр1 СГРУППИРОВАТЬ ПО Номенклатура, Заказ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ NULL, Регистр2.Заказ,, СУММА (Регистр2.Сумма) ИЗ РегистрНакопления.РасчетыСКлиентами КАК Регистр2 СГРУППИРОВАТЬ ПО Номенклатура, Заказ УПОРЯДОЧИТЬ ПО Номенклатура, Заказ |
|||
4
Encode
12.02.16
✎
12:18
|
(0) Что-то не то, зачем именно такая структура?
|
|||
5
sonGodv
12.02.16
✎
12:20
|
(3) Мне кажется в таком варианте нет связи по заказу
|
|||
6
sonGodv
12.02.16
✎
12:24
|
(4) Для того, чтобы в запросе еще посчитать некоторое значение. для расчета надо взять только одну сумму. Т.е. посчитать только один раз. А так получится, что в каждой строке расчет
|
|||
7
HardBall
12.02.16
✎
12:35
|
(6) ИТОГИ же блин. Учите матчасть
|
|||
8
ObjectRelation Model
12.02.16
✎
12:38
|
какова цель отчета?
|
|||
9
Night_Wolf
12.02.16
✎
12:40
|
Если тебе нужно вывести примерно так, насколько я понял:
Заказ 1 60 р. Ботинки 20 р Сапоги 30 р Туфли 10 р, То тут ничего проще нет. Берешь 2 таблицы, ИТОГИ по Заказ, потом обходишь выборку и в макете пишешь сначала заказы, а затем уже выводишь то, что входит в заказ. Автоматом так соединить без плясок при выводе - не получится. |
|||
10
ObjectRelation Model
12.02.16
✎
12:41
|
(9) получится, причем довольно легко через ОБЪЕДИНИТЬ ВСЕ
|
|||
11
Одинесю
12.02.16
✎
12:41
|
(9) У него 60р. второй таблице не равен сумме первой.
|
|||
12
Одинесю
12.02.16
✎
12:43
|
Я так понимаю в первой - сумма продаж, а во второй оплаты контрагентов по заказу.
|
|||
13
sonGodv
12.02.16
✎
14:37
|
(12) Часть оплаты
|
|||
14
sonGodv
12.02.16
✎
14:37
|
(9) Во второй таблице только часть оплаты
|
|||
15
sonGodv
12.02.16
✎
14:42
|
(8) Это не отчет. Нужен результат запроса, для заполнения табличной части.
Суть такова, что есть продажи по заказам клиентов, с разбивкой по номенклатуре и есть оплаты этих заказов, но часть оплачивается безналом а часть наличкой. Надо понять сколько оплачено безналом и сколько наличкой. Там где безнал надо учесть комиссию банка. В оплатах нет номенклатуры. В общем думал все это в запросе обсчитать, но по-видимому не получается. |
|||
16
ObjectRelation Model
12.02.16
✎
15:01
|
(15) а зачем тебе номенклатура?
|
|||
17
HardBall
12.02.16
✎
15:34
|
(15) ТЧ нарисуй.
|
|||
18
sonGodv
12.02.16
✎
18:03
|
(16) Номенклатура нужна для ТЧ
|
|||
19
sonGodv
12.02.16
✎
18:04
|
(17) ТЧ выглядит так как и запрос
Ботинки - Заказ №1 - 15р |
|||
20
HardBall
12.02.16
✎
18:22
|
(19) Понятно. А какое поле ты хочешь рассчитать в запросе?
|
|||
21
sonGodv
12.02.16
✎
18:28
|
(20) От Суммы оплаты хочу отнять 0.03
|
|||
22
sonGodv
12.02.16
✎
18:32
|
Т.е. если так то будет правильно:
Ботинки Заказ №1 15р Заказ №1 60р - (60р * 0.03) Сапоги Заказ №1 10р Туфли Заказ №1 50р Так не правильно: Ботинки Заказ №1 15р Заказ №1 60р - (60р * 0.03) Сапоги Заказ №1 10р Заказ №1 60р - (60р * 0.03) Туфли Заказ №1 50р Заказ №1 60р - (60р * 0.03) |
|||
23
HardBall
12.02.16
✎
18:41
|
Ботинки Заказ №1 15р |Заказ №1 60р - (60р * 0.03)
Почему идет именно такое соединение? ты хочешь соединить заказ с первой строкой? Что происходит с этими данными 1. Заказ №1 2. 60р - (60р * 0.03). Куда они записываются? |
|||
24
sonGodv
12.02.16
✎
18:46
|
(23) Нет, с любой строкой слева.
Я не знаю какая позиция оплачивается. Мне просто надо отнять комиссию, если таблице оплат найден Заказ №1 |
|||
25
HardBall
12.02.16
✎
18:57
|
Где ты используешь рассчитанную комиссию?
|
|||
26
sonGodv
12.02.16
✎
19:17
|
(25) Отдельно нигде. Отнимаю от суммы оплаты
|
|||
27
sonGodv
12.02.16
✎
19:18
|
В общем нашел другое решение.
Благодарю всех за участие и желание помочь! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |