|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
repin_mike
16.03.16
✎
11:53
|
Задаются начальная и конечная дата. Между этими датами выбираются все стоки ТЧ "товары" проведённых документов "реализация товаров и услуг" - номенклатура, контрагент, дата продажи, количество проданного. Получается таблица реализаций {1}
В итоге мы знаем какой товар кому когда продали и в каком количестве. Задача узнать - а у кого мы этот товар покупали, когда и по сколько? Не заморачиваясь с партионным учётом, считаем что нужные данные содержатся в ТЧ проведённых доков "поступление товаров и услуг" (и пофиг что это неправильно), то есть к каждой строке таблицы {1} необходимо справа дописать несколько строк (возможно 0 если поступлений не было) с тем, чтобы поступления были самыми свежими по дате, но не превышали дату продажи из строки таблицы {1}; и разумеется общее количество всех поступлений должно быть равно количеству проданного (может быть меньше, если поступлений не было). Я могу написать такой отчёт в виде Запрос - перебор его строк в цикле - для каждой строки из цикла ещё один запрос. Скорее всего, такое возможно реализовать в СКД, хотя я и не знаю пока каким образом. Вопрос: а возможно ли вытащить такие данные обычным, не динамически сформированным запросом? Если да то обозначьте направление для поисков. |
|||
1
ViSo76
16.03.16
✎
11:59
|
Скорее всего 2 запроса ( по продажам и отдельно по поступлениям для данных продаж ) и последующая бработка на клиенте ( скорее всего аналитику проще делать чем лепить всё в одном запросе ). И затем подготовленную таблицу в СКД
PS: На данные нужно смотреть чтобы определиться можно ли в одном запросе или нет. |
|||
2
LordCMEPTb
16.03.16
✎
12:08
|
В запросе такое сделать можно, где-то находил статью на инфостарте, но сейчас уже вряд ли найду...
Могу только пример скинуть того запросика, который мучал: https://yadi.sk/i/UZQMGbVjqE5V7 |
|||
3
Рэйв
16.03.16
✎
12:08
|
Я бы сделал только таблицу продаж. А статистику закупок формировал подробно отдельной таблице по клику на интересующей строке
|
|||
4
Рэйв
16.03.16
✎
12:09
|
Все вместе получится нечитаемо имхо
|
|||
5
Рэйв
16.03.16
✎
12:10
|
Или наоброт. Таблицу укого что закупали с колокнокой продаж
|
|||
6
Aceforg
16.03.16
✎
12:19
|
Копай в сторону "нумерация строк в запросе".
Имхо выйдет дико не читаемый запрос, делать можно лишь из-за академического интереса. Твоя задача не тот случай, чтобы сделать в одном запросе. Делай запрос в цикле и не парься |
|||
7
Ildarovich
16.03.16
✎
12:40
|
Интересный вопрос, который уже много раз обсуждали.
Вот подборка ссылок из статьи http://catalog.mista.ru/public/201526/ http://catalog.mista.ru/public/20221/ Отчет по просроченной задолженности/задолженность по интервалам http://catalog.mista.ru/public/58966 Нарастающие итоги в запросе и методы ускорения его выполнения http://catalog.mista.ru/public/60670/ SubSys: Просроченная задолженность по срокам (режим - по договорам в целом ФИФО) http://catalog.mista.ru/public/61295/ Подведем итоги. Нарастающие http://catalog.mista.ru/public/61745/ Запрос. Нарастающий итог. Как я его понимаю http://catalog.mista.ru/public/62137/ Запрос. Нарастающий итог. Как я его НЕ понимаю (вторая часть). http://catalog.mista.ru/public/62899/ БП1.6.Просроченная задолженность по 62 сч. Продолжение разговара http://catalog.mista.ru/public/68225/ ФИФО для любопытных http://catalog.mista.ru/public/82098/ Запрос. Нарастающий итог. Как я его НЕ понимаю (третья часть). http://catalog.mista.ru/public/88999/ Использование нарастающих итогов в партионном учете и не только http://catalog.mista.ru/public/122548/ Нарастающие итоги. Объединение двух таблиц с нарастающими итогами |
|||
8
AceVi
16.03.16
✎
13:00
|
(0)
Что вы тут развели - если опираться только на задачу из 0 поста это тупо левое соединение НомПродажи=НомПокупки ДатаПродажи>=ДатаПокупки и потом группировка при выводе отчета. Другое дело что этих условий далеко недостаточно - т.к. тут нет инфо что вот эту номенклатуру покупали именно этим документом. Эти данные ты никак не получишь из табличных частей документов. Научись получать информацию из регистров - например ПартииТоваровНаСкладах где Регистратор - это твой документ продажи а ДокументОприходывания - документ покупки. |
|||
9
repin_mike
16.03.16
✎
13:33
|
(8) Нет, это не тупо левое соединение НомПродажи=НомПокупки ДатаПродажи>=ДатаПокупки
Надо ещё отобрать нужное количество. Например, если продали 16 марта 100 штук, а предыдущие поступления были 15марта 50шт и 14 марта 70 шт, то в отчёте нужно левоприсоединить именно 50, чтобы в сумме было 100. А поступление 13марта 300шт вообще присоединять не надо. |
|||
10
Zhuravlik
16.03.16
✎
13:44
|
(9) Получается что-то вроде эмуляции среза последних на каждую дату? Вроде не сложно. Собрать все различные даты реализации в одном месте, по ним - последние поступления, и результирующую таблицу левым к исходной.
|
|||
11
Dotoshin
16.03.16
✎
13:50
|
(0) А для чего это нужно? Рентабельность продаж хотите проанализировать?
|
|||
12
Geroy
16.03.16
✎
13:51
|
(0) Оборачиваемость запасов на складах?
|
|||
13
AceVi
16.03.16
✎
14:15
|
(9) О чем я и говорю. для это информации(что бы получить ее в запросе) нужно ставить партионный учет.
Если нет такого - то только в цикле как ты описывал. т.к. тебе надо учитывать какие документы покупки ты уже распределил по продажам а какие нет. |
|||
14
Ildarovich
16.03.16
✎
15:24
|
(9) вы просили "направить". В (7) куча ссылок как люди решали эту задачу. С подробными пояснениями по построению запроса. Это тема "ФИФО запросом" многих в свое время интересовала и решения были опубликованы и обсуждены. С точки зрения скорости, сложности и тому подобное.
В (0) у вас условие "последние, такие, что дата поступления не позже даты продажи". Это говорит о ЛИФО, а не ФИФО. Все равно принцип тот же. (13) ставить партионный учет не нужно, можно обойтись без этого и тем более без цикла, гляньте ссылки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |