|
Как сделать выборку номенклатурных групп с максимальными моментами времени? | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
PR третий
09.10.15
✎
11:59
|
Есть регистр бухгалтерии.
Есть 20 счет с субконто "Номенклатурные группы". Как выбрать запросом таблицу, в которой будет два поля, "Номенклатурная группа" и "Максимальный момент времени, на который остаток по этой номенклатурной группе был равен нулю"? |
|||||||
1
mikecool
09.10.15
✎
12:00
|
стыдно такое спрашивать
|
|||||||
2
PR третий
09.10.15
✎
12:00
|
(1) Есть решение?
|
|||||||
3
mikecool
09.10.15
✎
12:01
|
(2) нет
|
|||||||
4
PR третий
09.10.15
✎
12:01
|
+(2) Нормальное по скорости, то есть без всяких соединений всех записей со всеми.
|
|||||||
5
mikecool
09.10.15
✎
12:02
|
нужно последний момент, когда в производстве не было ном группы?
|
|||||||
6
PR третий
09.10.15
✎
12:02
|
(3) Тогда что стыдно? Стыдно спрашивать то, про что каждый знает, что это невозможно? Или что?
|
|||||||
7
PR третий
09.10.15
✎
12:02
|
(5) Нужно последний момент, когда на 20 счете по этой НГ был остаток 0.
|
|||||||
8
Сторно абсурда
09.10.15
✎
12:04
|
(6) Почему именно момент времени? 20 счет закрывается помесячно.
|
|||||||
9
PR третий
09.10.15
✎
12:05
|
(8) Будем считать эту вводную чёрным ящиком :)) Типа вот так есть и всё :))
|
|||||||
10
PR третий
09.10.15
✎
12:05
|
+(9) Кроме того, тогда задача становится банальной и неинтересной :))
|
|||||||
11
mikecool
09.10.15
✎
12:05
|
(4) не вижу решения без соединения всех со всеми
|
|||||||
12
Stim
09.10.15
✎
12:06
|
можно сделать на SQL прямыми запросами
|
|||||||
13
PR третий
09.10.15
✎
12:07
|
(12) Не надо
|
|||||||
14
Гёдза
09.10.15
✎
12:07
|
Сколько платишь? )))
|
|||||||
15
el-gamberro
09.10.15
✎
12:08
|
Решается просто. По каждой НГ надо собрать интервалы, каждый раз когда меняется остаток. И это с ключом регистратор.
Затем для всех интервалов взять остаток = 0 и МАКСИМУМ(регистратор.Период) |
|||||||
16
PR третий
09.10.15
✎
12:09
|
(14) Нисколько :))
Считай это пятничной задачкой, разминкой для ума :)) Я для себя решение уже нашел, правда не скажу, что красивое :)) |
|||||||
17
el-gamberro
09.10.15
✎
12:09
|
Вот такое надо
НАЧАЛО_интервала; КОНЕЦ_интервала; Остаток_интервала; Регистратор_инициировалИнтервал; |
|||||||
18
PR третий
09.10.15
✎
12:09
|
(15) У регистратора нет периода, есть момент времени
|
|||||||
19
el-gamberro
09.10.15
✎
12:10
|
КРОСС Джоин можно использовать, но можно и обойтись ПОЛНОЕ СОЕДИНЕНИЕ несколько раз
|
|||||||
20
el-gamberro
09.10.15
✎
12:11
|
(18) К моменту времени нельзя применить агрегацию
|
|||||||
21
el-gamberro
09.10.15
✎
12:12
|
+ (18) Но это уже тонкости, они решаются
|
|||||||
22
PR третий
09.10.15
✎
12:13
|
(20) Логично :))
А период записи может включать 100500 регистраторов :)) |
|||||||
23
itlikbez
09.10.15
✎
12:15
|
(0) Хороший пример извращенческой задачи.
Убираешь слово "запросом" и задача превращается в элементарную. |
|||||||
24
PR третий
09.10.15
✎
12:15
|
(21) И как же решается тонкость невозможности взятия максимума по моменту времени регистратора? :))
|
|||||||
25
Гёдза
09.10.15
✎
12:15
|
(16) Ты этому у гения научился?
-Посоны, угадайте решения!!! |
|||||||
26
el-gamberro
09.10.15
✎
12:16
|
(24) соединив таблицу саму с собой по периоду и взяв МАКСИМУМ(Ссылка)
|
|||||||
27
PR третий
09.10.15
✎
12:16
|
(23) Логично :))
Но это не самостоятельная задача. Это вспомогательная таблица для другого запроса :)) |
|||||||
28
itlikbez
09.10.15
✎
12:18
|
(27) И что? Вспомогательная таблица для запроса обязательно должна быть сделана запросом?
|
|||||||
29
PR третий
09.10.15
✎
12:19
|
(25) Да не, в моем решении все просто.
Выбираем максимальные периоды по НГ, потом все регистраторы с таким периодом, потом соединение всех со всеми по НГ и сравнением по моменту времени. |
|||||||
30
PR третий
09.10.15
✎
12:20
|
(26) Максимум ссылки не равен максимуму момента времени
|
|||||||
31
PR третий
09.10.15
✎
12:21
|
(28) Очень желательно
|
|||||||
32
el-gamberro
09.10.15
✎
12:21
|
(29) откуда максимальные периоды по НГ ты взял?
|
|||||||
33
PR третий
09.10.15
✎
12:23
|
(32) Выбрал запросом записи, где остаток равен нулю и взял максимум по периоду
|
|||||||
34
el-gamberro
09.10.15
✎
12:23
|
(30) Период+Ссылка равен. А не знает, иди поучи язык 1С.
Поэтому выбираем МАКСИМУМ(Период) и соединяем с МАКСИМУМ(Регистратор). Это нужно когда в один период могут быть несколько регистраторов. |
|||||||
35
el-gamberro
09.10.15
✎
12:24
|
(33) из какой это ты вирт. таблицы такое выбрал?
|
|||||||
36
PR третий
09.10.15
✎
12:25
|
(34) Максимум по ссылке при одинаковом периоде даст максимальный момент времени?
|
|||||||
37
el-gamberro
09.10.15
✎
12:25
|
(36) Да, даст.
|
|||||||
38
PR третий
09.10.15
✎
12:26
|
(35) Остатки и обороты по регистраторам
|
|||||||
39
PR третий
09.10.15
✎
12:26
|
(37) Не знал. Спасибо.
|
|||||||
40
Ненавижу 1С
гуру
09.10.15
✎
12:28
|
Рома как всегда не знал мат.части
|
|||||||
41
PR третий
09.10.15
✎
12:28
|
Хех. Пятничной ветки не получилось. Получилась вполне себе такая техническая ветка :))
|
|||||||
42
PR третий
09.10.15
✎
12:30
|
(40) Я знал, что момент времени = дата + ссылка.
Не знал (36). |
|||||||
43
Гёдза
09.10.15
✎
12:32
|
Не совсем Момент = Дата + Гуид ссылки.
А просто ссылка - это Тип + Вид |
|||||||
44
Гёдза
09.10.15
✎
12:32
|
*Тип+Гуид
|
|||||||
45
PR третий
09.10.15
✎
14:44
|
Странно, но вроде как так и есть Как переместить документ в конец дня?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |