Снегопат
https://snegopat.ru/forum/

Помогите с запросом
https://snegopat.ru/forum/viewtopic.php?f=6&t=304
Страница 1 из 2

Автор:  JohnyDeath [ 05 дек 2012, 08:41 ]
Заголовок сообщения:  Помогите с запросом

Реально ли сделать такое: 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

Ес-но надо в запросе

Автор:  also [ 05 дек 2012, 08:47 ]
Заголовок сообщения:  Re: Помогите с запросом

Рассмотри вариант слепить уникальный ключ в первой таблице. Тупо сложить.

Автор:  JohnyDeath [ 05 дек 2012, 08:52 ]
Заголовок сообщения:  Re: Помогите с запросом

Так 1С не умеет преобразовывать ссылки в строки

Автор:  also [ 05 дек 2012, 08:57 ]
Заголовок сообщения:  Re: Помогите с запросом

Ну это понятно. Но можно же рассмотреть разные варианты: у справочников наименования есть, у документов номер+дата. Может можно придумать какой-то числовой ключ, все зависит от задачи. Хотя это все мега криво конечно))

Автор:  JohnyDeath [ 05 дек 2012, 09:03 ]
Заголовок сообщения:  Re: Помогите с запросом

Нее, наименования, коды и прочее это вообще некрасиво и неправильно. Уж лучше тогда 4 вложенных запроса с группировками

Автор:  also [ 05 дек 2012, 09:07 ]
Заголовок сообщения:  Re: Помогите с запросом

ну с такой постановкой задачи - 4 вложенных по идее самое правильное решение. Просто может все таки ключ можно например перед запросом сформировать.

Автор:  Stepa86 [ 05 дек 2012, 09:10 ]
Заголовок сообщения:  Re: Помогите с запросом

Зачем уже спрашивали? Если бы надо было это в скд вывести так, чтоб итоги правильно показывали, то это я знаю как, а вот как это через запрос - хз.
Опять же разные подходы будут к "сделать правильные итоги" или "вывести долг в каждой первой строке по новому контрагенту"

Автор:  JohnyDeath [ 05 дек 2012, 09:35 ]
Заголовок сообщения:  Re: Помогите с запросом

Применительно к данному примеру идея следующая: закинуть долг контрагента в любую строчку его покупок.
В исходной задаче эти суммы появляются в результате округлений. Т.е. у нас есть была какая-то сумма по контрагенту, мы её распределяем по точкам Контрагента и остаток округления вбухиваем любому. Например, Контрагент должен нам 100 руб., у него есть три торговые точки. Распределяем долг на эти точки по 33,33 руб. в итоге получаем 99,99. И вот эту потерянную копейку надо закинуть на любую точку.

Автор:  also [ 05 дек 2012, 10:23 ]
Заголовок сообщения:  Re: Помогите с запросом

Я подобные распределения всегда уже в обходе запроса писал. Просто, если строчка последняя, то не делим, а вычитаем из общей суммы накопленную. Есть ли смысл прям все в запросе делать?

Автор:  Stepa86 [ 05 дек 2012, 10:36 ]
Заголовок сообщения:  Re: Помогите с запросом

also писал(а):
Я подобные распределения всегда уже в обходе запроса писал. Просто, если строчка последняя, то не делим, а вычитаем из общей суммы накопленную. Есть ли смысл прям все в запросе делать?

+100500

в типовых так же видел такое распределение через цикл и сваливание остатка последней строчке. Если через запрос и получится, то это будет ооооочень нетривиальная фигня

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/