|
Как соединить две таблицы в запросе в одной есть период в другой нет | ☑ | ||
---|---|---|---|---|
0
Cerera
30.09.13
✎
16:01
|
Есть таблица 1 (продажи):
Контрагент, Номенклатура, Период, Количество Есть таблица 2 (регистр сведений): Контрагент, Номенклатура, Предполагаемое количество Когда я вложенный запрос делаю, соединяю их по Номенклатура, Контрагенту, то рядом с периодом идёт количество, а на следующей строчке идет предполагаемое количество по тем же измерениям, а мне надо, чтоб Если номенклатура, контрагент совпадают, то чтоб "предполагаемое количество" шло рядом с каждой строчкой периода. Пример: Товар1, Контагент1, 01.01.2013, 100, 150 Товар1, Контагент1, 01.02.2013, 120, 150 Товар1, Контагент1, 01.03.2013, 90, 150 Как бы так их соединить? |
|||
1
butterbean
30.09.13
✎
16:02
|
какбе просто левое соединение по номенклатуре и контрагенту
|
|||
2
Cerera
30.09.13
✎
16:07
|
(1)не подойдет. потому что мне надо, чтоб если в РС есть данные, а в продажах нет, то чтоб выходили всё равно строчки.
|
|||
3
butterbean
30.09.13
✎
16:08
|
(2) ну тогда полное соединение
|
|||
4
Жан Пердежон
30.09.13
✎
16:09
|
выбирай:
ПОЛНОЕ СОЕДИНЕНИЕ ОБЪЕДИНИТЬ |
|||
5
Cerera
30.09.13
✎
16:10
|
(4)полное соединение знаю, объединить не понимаю.
|
|||
6
samozvanec
30.09.13
✎
16:10
|
"чтоб "предполагаемое количество" шло рядом с каждой строчкой периода"
что бы это могло значить? |
|||
7
Cerera
30.09.13
✎
16:13
|
(6)Продажи могут быть за каждый месяц. необходимо, чтобы значение "предполагаемое количество" из регистра сведений подставлялось рядом с каждым месяцем.
|
|||
8
samozvanec
30.09.13
✎
16:14
|
если ты хочешь в той же строке отдельной колонкой, то соединение. но у тебя, судя по всему, в первой таблице значения полей, по которым идет связь, могут повторяться. соответственно, он тебе предполагаемые продажи в каждой строчке покажет. не знаю, насколько это юзабельно.
если объединишь и отсортируешь по контрагенту и номенклатуре. то одной отдельно строкой покажет. опять же в отдельную колонку предполагаемое количество можно вывести. |
|||
9
Sabbath
30.09.13
✎
16:17
|
(2) А чему тогда период равен, если нет продаж, а есть строчки РС?
Короче юзай полное соединение и не забудь ЕСТЬNULL |
|||
10
Cerera
30.09.13
✎
16:18
|
(9)если есть строчки в РС то пусть показывает только предполагаемый объем.
|
|||
11
Sabbath
30.09.13
✎
16:20
|
(10) Это понятно, но колонку с периодом придется чем-то заполнить) Как я понял, раз ты упоминал период, то он нужен какой-то. Кстати, что имеется ввиду под периодом? Если это как бы месяц, то все ок, вопросов нет)
|
|||
12
Sabbath
30.09.13
✎
16:22
|
+(11) Хотя нет, вопросы есть, ведь по периоду строки не будет, елси не будет строки в продажах, а будет только одна строка с предполагаемым объемом с неизвестным периодом
|
|||
13
Cerera
30.09.13
✎
16:25
|
(12)(11)а дело в том что результат запроса добавляется в документ в табличную часть обрабатываясь построчно.
а в табличной части уже на каждую пару "Контрагент" - "номенклатура" одна строчка. но в отдельных колонках идут данные по продажам за месяц. а если предполагаемый объем <>0 а продаж не было ни за один месяц, то просто эти столбики с продажами будут пустыми. |
|||
14
Sabbath
30.09.13
✎
16:26
|
(0) Если такая проблема, как в (12), то тебе надо получить таблицу периодов, присоединить ее декартовым соединением к РС с предполагаемым обемом, а потом это по периоду, контрагенту и номенклатуре к продажам. Период, естественно, привести к началу месяца. Как я понял, суть твоего отчета в этом.
Декартово соединение это типа выбрать ... из Таблица1, Таблица2 Тогда присоединит все, ко всему. А таблицу периодов получай в цикле, например, и засовывай в запрос. Хотя, вероятно, есть решения оптимальней. |
|||
15
Sabbath
30.09.13
✎
16:29
|
(13) Подойдет вариант (14), хотя есть и другие
|
|||
16
Sabbath
30.09.13
✎
16:34
|
В варианте (14) продажи уже подсоединяются левым соединением, естественно (продажи справа)
|
|||
17
Cerera
30.09.13
✎
16:39
|
понял. пробую.
|
|||
18
Sabbath
30.09.13
✎
16:44
|
(17) Давай, мне уже идти, так что разбирайся дальше сам, это должно работать. Потом расскажешь)
|
|||
19
Strogg
30.09.13
✎
16:46
|
ОБЪЕДИНИТЬ ВСЕ.
Как-то так... |
|||
20
Sabbath
30.09.13
✎
16:49
|
(19) осталось написать, что с чем объединять, ибо этого мало для решения задачи) А решить можно и через объединение, но мой ответ в (14)
|
|||
21
Strogg
30.09.13
✎
16:50
|
(20), ну, объединять ему особо вариантов нет. По контрагенту и по номенклатуре. В качестве периода использовать пустую дату, навскидку.
|
|||
22
Sabbath
30.09.13
✎
16:52
|
(21) суть в том, что нужна как раз не пустая дата, а разные, почитай тред
|
|||
23
Sabbath
30.09.13
✎
16:53
|
+(22) а именно (13)
|
|||
24
Strogg
30.09.13
✎
16:56
|
(22) если в РС нет периода, то никаким образом не сделать, кроме пустой даты в одном запросе(потом сгруппировать по контрагенту, номенклатуре, а даты сложить). Можно только создать другой запрос, где дополнить период и передать в качестве виртуальной таблицы. Но это уже совсем другой вопрос...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |