Помогите с запросом
-
JohnyDeath
- Сообщения: 722
- Зарегистрирован: 24 авг 2011, 15:32
Помогите с запросом
Реально ли сделать такое: http://www.forum.mista.ru/topic.php?id=642538
Копипаста сюда:
Есть две таблицы:
1)втРасходы с колонками: Контрагент, Услуга, Товар, ПриходДок
2)втДолги с колонками: Контрагент, Сумма
Во второй таблице "Контрагент" - уникальное. В первой уникальность по совокупности столбцов.
Нужно дополнить ЛЮБУЮ ОДНУ строку первой значением столбца "Сумма" второй таблицы для каждого контрагента.
Пример.
1) втРасходы:
Контрагент1, Продажа, Костыль, Док1
Контрагент1, Продажа, Костыль2, Док1
Контрагент1, Продажа, Костыль, Док2
Контрагент2, Продажа, Цветок, Док2
20 втДолги:
Контрагент1, 100
Контрагент2, 200
Итоговая таблица:
Контрагент1, Продажа, Костыль, Док1, 100
Контрагент1, Продажа, Костыль2, Док1, 0
Контрагент1, Продажа, Костыль, Док2, 0
Контрагент2, Продажа, Цветок, Док2, 200
Ес-но надо в запросе
Копипаста сюда:
Есть две таблицы:
1)втРасходы с колонками: Контрагент, Услуга, Товар, ПриходДок
2)втДолги с колонками: Контрагент, Сумма
Во второй таблице "Контрагент" - уникальное. В первой уникальность по совокупности столбцов.
Нужно дополнить ЛЮБУЮ ОДНУ строку первой значением столбца "Сумма" второй таблицы для каждого контрагента.
Пример.
1) втРасходы:
Контрагент1, Продажа, Костыль, Док1
Контрагент1, Продажа, Костыль2, Док1
Контрагент1, Продажа, Костыль, Док2
Контрагент2, Продажа, Цветок, Док2
20 втДолги:
Контрагент1, 100
Контрагент2, 200
Итоговая таблица:
Контрагент1, Продажа, Костыль, Док1, 100
Контрагент1, Продажа, Костыль2, Док1, 0
Контрагент1, Продажа, Костыль, Док2, 0
Контрагент2, Продажа, Цветок, Док2, 200
Ес-но надо в запросе
Re: Помогите с запросом
Рассмотри вариант слепить уникальный ключ в первой таблице. Тупо сложить.
-
JohnyDeath
- Сообщения: 722
- Зарегистрирован: 24 авг 2011, 15:32
Re: Помогите с запросом
Так 1С не умеет преобразовывать ссылки в строки
Re: Помогите с запросом
Ну это понятно. Но можно же рассмотреть разные варианты: у справочников наименования есть, у документов номер+дата. Может можно придумать какой-то числовой ключ, все зависит от задачи. Хотя это все мега криво конечно))
-
JohnyDeath
- Сообщения: 722
- Зарегистрирован: 24 авг 2011, 15:32
Re: Помогите с запросом
Нее, наименования, коды и прочее это вообще некрасиво и неправильно. Уж лучше тогда 4 вложенных запроса с группировками
Re: Помогите с запросом
ну с такой постановкой задачи - 4 вложенных по идее самое правильное решение. Просто может все таки ключ можно например перед запросом сформировать.
Re: Помогите с запросом
Зачем уже спрашивали? Если бы надо было это в скд вывести так, чтоб итоги правильно показывали, то это я знаю как, а вот как это через запрос - хз.
Опять же разные подходы будут к "сделать правильные итоги" или "вывести долг в каждой первой строке по новому контрагенту"
Опять же разные подходы будут к "сделать правильные итоги" или "вывести долг в каждой первой строке по новому контрагенту"
-
JohnyDeath
- Сообщения: 722
- Зарегистрирован: 24 авг 2011, 15:32
Re: Помогите с запросом
Применительно к данному примеру идея следующая: закинуть долг контрагента в любую строчку его покупок.
В исходной задаче эти суммы появляются в результате округлений. Т.е. у нас есть была какая-то сумма по контрагенту, мы её распределяем по точкам Контрагента и остаток округления вбухиваем любому. Например, Контрагент должен нам 100 руб., у него есть три торговые точки. Распределяем долг на эти точки по 33,33 руб. в итоге получаем 99,99. И вот эту потерянную копейку надо закинуть на любую точку.
В исходной задаче эти суммы появляются в результате округлений. Т.е. у нас есть была какая-то сумма по контрагенту, мы её распределяем по точкам Контрагента и остаток округления вбухиваем любому. Например, Контрагент должен нам 100 руб., у него есть три торговые точки. Распределяем долг на эти точки по 33,33 руб. в итоге получаем 99,99. И вот эту потерянную копейку надо закинуть на любую точку.
Re: Помогите с запросом
Я подобные распределения всегда уже в обходе запроса писал. Просто, если строчка последняя, то не делим, а вычитаем из общей суммы накопленную. Есть ли смысл прям все в запросе делать?
Re: Помогите с запросом
also писал(а):Я подобные распределения всегда уже в обходе запроса писал. Просто, если строчка последняя, то не делим, а вычитаем из общей суммы накопленную. Есть ли смысл прям все в запросе делать?
+100500
в типовых так же видел такое распределение через цикл и сваливание остатка последней строчке. Если через запрос и получится, то это будет ооооочень нетривиальная фигня