|
Помогите плиз с запросом | ☑ | ||
---|---|---|---|---|
0
Alexey_55
26.11.12
✎
15:25
|
Нужен такой отчет,
Поля: Заказ, Номенклатура, Количество, Свободный остаток на дату заказа. Из РН ЗаказыПокупателей беру Номенклатура, Регистратор, КоличествоПриход. к выбранному левым соединением нужно добавить Свободный остаток из РН СвободныеОстатки. его нужно присоединить по дате. можно ли как-то использовать в этом случае виртуальную таблицу Свободных остатков? |
|||
1
Alexey_55
26.11.12
✎
15:30
|
чтобы понятней было этот отчет нужен для того чтобы смотреть какой процент заказываемого товара обычно лежит в свободном остатке
|
|||
2
Kashemir
26.11.12
✎
15:32
|
Я не против
|
|||
3
Irek-kazan
26.11.12
✎
15:35
|
уверен что по дате а не по номенклатуре?
|
|||
4
Alexey_55
26.11.12
✎
15:36
|
по номенклатура в том числе
|
|||
5
Alexey_55
26.11.12
✎
15:43
|
точнее отчет Сервисный коэффициент работы склада
|
|||
6
Kashemir
26.11.12
✎
15:45
|
(5) у остаточного РН есть 2 виртуальных таблицы с остатками. Остатки - можно получить только на 1 дату.
ОстаткиИОбороты - получишь остатки на начало на конец и на дни в которых были обороты. |
|||
7
dk
26.11.12
✎
15:46
|
Период ведь задан?
циклом по датам формируй остатки на дату и пихай во врем табл потом в запросе уже цепляйся по дате и товару ко временой таблице |
|||
8
Alexey_55
26.11.12
✎
15:58
|
(6) Это понятно..
|
|||
9
Alexey_55
26.11.12
✎
15:59
|
(7) получается в СКД такой отчет не сделать?
|
|||
10
Kashemir
26.11.12
✎
16:00
|
(9) Почему же нет. Получи ОстаткиИОбороты а дальше типа динамический срез последних.
|
|||
11
Kashemir
26.11.12
✎
16:01
|
+(10) Есть и более сложный путь с начальным остаток + накопленным оборотом, но имхо хватит и (10)
|
|||
12
Alexey_55
26.11.12
✎
17:07
|
(10) Спасибо!
|
|||
13
Alexey_55
27.11.12
✎
11:12
|
получился вот такой запрос
ВЫБРАТЬ ЗаказыПокупателейОбороты.Номенклатура КАК Номенклатура, СУММА(ВЫБОР КОГДА ЗаказыПокупателейОбороты.КоличествоПриход > 0 ТОГДА ЗаказыПокупателейОбороты.КоличествоПриход КОНЕЦ) КАК Заказано, СУММА(ВЫБОР КОГДА ЕСТЬNULL(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток, 0) < 0 ТОГДА 0 ИНАЧЕ ЕСТЬNULL(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КОНЕЦ) КАК Остаток, СРЕДНЕЕ(ВЫБОР КОГДА ЕСТЬNULL(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток, 0) >= ЗаказыПокупателейОбороты.КоличествоПриход ТОГДА 100 КОГДА ЕСТЬNULL(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток, 0) <= 0 ТОГДА 0 ИНАЧЕ ЕСТЬNULL(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток, 0) * 100 / ЗаказыПокупателейОбороты.КоличествоПриход КОНЕЦ) КАК Коэффициент, ЗаказыПокупателейОбороты.Регистратор КАК Заказ ИЗ РегистрНакопления.ЗаказыПокупателей.Обороты(&НачПериода, &КонПериода, Авто, ) КАК ЗаказыПокупателейОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , ) КАК СвободныеОстаткиОстаткиИОбороты ПО ЗаказыПокупателейОбороты.Номенклатура = СвободныеОстаткиОстаткиИОбороты.Номенклатура И ЗаказыПокупателейОбороты.ПериодСекунда = СвободныеОстаткиОстаткиИОбороты.ПериодСекунда СГРУППИРОВАТЬ ПО ЗаказыПокупателейОбороты.Номенклатура, ЗаказыПокупателейОбороты.Регистратор остатки из второй таблицы достает только для первой записи.. подскажите плиз как исправить? |
|||
14
programmer1c_
63 27.11.12
✎
11:14
|
Почему связь не по регистратору?
|
|||
15
Alexey_55
27.11.12
✎
11:28
|
(14) Попробовал по регистратору, никаких изменений..
|
|||
16
Kashemir
27.11.12
✎
11:34
|
ВЫБРАТЬ
СвободныеОстаткиОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда, СУММА(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, СвободныеОстаткиОстаткиИОбороты.Номенклатура КАК Номенклатура ПОМЕСТИТЬ Остатки ИЗ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , ) КАК СвободныеОстаткиОстаткиИОбороты СГРУППИРОВАТЬ ПО СвободныеОстаткиОстаткиИОбороты.Номенклатура, СвободныеОстаткиОстаткиИОбороты.ПериодСекунда ИНДЕКСИРОВАТЬ ПО Номенклатура, ПериодСекунда ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Заказ, ЕСТЬNULL(Остатки.КоличествоКонечныйОстаток, 0) КАК ОстатокНаДокумент, ВложенныйЗапрос.КоличествоПриход ИЗ (ВЫБРАТЬ ЗаказыПокупателейОбороты.Номенклатура КАК Номенклатура, ЗаказыПокупателейОбороты.Регистратор КАК Заказ, ВЫБОР КОГДА ЗаказыПокупателейОбороты.КоличествоПриход > 0 ТОГДА ЗаказыПокупателейОбороты.КоличествоПриход ИНАЧЕ 0 КОНЕЦ КАК КоличествоПриход, МАКСИМУМ(Остатки.ПериодСекунда) КАК ПериодОстатка ИЗ РегистрНакопления.ЗаказыПокупателей.Обороты(&НачПериода, &КонПериода, Авто, ) КАК ЗаказыПокупателейОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ Остатки КАК Остатки ПО ЗаказыПокупателейОбороты.Номенклатура = Остатки.Номенклатура И ЗаказыПокупателейОбороты.ПериодСекунда >= Остатки.ПериодСекунда СГРУППИРОВАТЬ ПО ЗаказыПокупателейОбороты.Номенклатура, ЗаказыПокупателейОбороты.Регистратор, ВЫБОР КОГДА ЗаказыПокупателейОбороты.КоличествоПриход > 0 ТОГДА ЗаказыПокупателейОбороты.КоличествоПриход ИНАЧЕ 0 КОНЕЦ) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ Остатки КАК Остатки ПО ВложенныйЗапрос.Номенклатура = Остатки.Номенклатура И ВложенныйЗапрос.ПериодОстатка = Остатки.ПериодСекунда |
|||
17
Kashemir
27.11.12
✎
11:39
|
+(16) Финальное соединение должно быть левым (у меня внутреннее)
|
|||
18
Alexey_55
27.11.12
✎
11:45
|
(16)Спасибо огромное!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |