|
Как в запросе выбрать сумму накопительно по периоду | ☑ | ||
---|---|---|---|---|
0
Слесарь74
01.06.21
✎
17:04
|
Прошу помочь советом.
Есть таблица, где есть данные по дням (периодам). Надо запросом выбрать накопительно. Пример запроса: ВЫБРАТЬ Т.Дата КАК Дата, СУММА(Т.ФактическийСдельныйФОТ) КАК ФактическийСдельныйФОТ ИЗ ВТ_ТрудозатратыПоСотрудникам КАК Т ГДЕ Т.Дата >= &НачалоПериода И Т.Дата <= &КонецПериода СГРУППИРОВАТЬ ПО Т.Дата ---------- есть: 01.04.21 1000 02.04.21 1200 03.04.21 800 надо: 01.04.21 1000 02.04.21 2200 03.04.21 3000 |
|||
1
acht
01.06.21
✎
17:18
|
Левое соединение самого себя по дате меньше или равно и суммировать присоединенную таблицу
|
|||
2
Слесарь74
01.06.21
✎
17:38
|
не понял про "и суммировать присоединенную таблицу"
|
|||
3
Слесарь74
01.06.21
✎
17:39
|
что значит суммировать присоединенную таблицу. Можно на примере показать ?
Был бы признателен |
|||
4
SleepyHead
гуру
01.06.21
✎
17:39
|
||||
5
Слесарь74
01.06.21
✎
17:43
|
(4) Спасибо!
|
|||
6
Said_We
01.06.21
✎
20:31
|
Жаль..., что нельзя писать как-то так:
sum(ФактическийСдельныйФОТ) over(order by Дата rows between unbounded preceding and current row) Если перевести, то сумма значения колонки "ФактическийСдельныйФОТ" для строк между самой первой строкой и текущей. И нет тут никаких левых соединений и пишется это короче и выполняется это на порядок быстрее. |
|||
7
Ivan_495
01.06.21
✎
20:40
|
(6) в скд есть такие функции и более серьезные для ресурсов.
|
|||
8
Ненавижу 1С
гуру
01.06.21
✎
20:46
|
(6) по-моему достаточно
sum(ФактическийСдельныйФОТ) over(order by Дата) Остальное добавиться по-умолчанию |
|||
9
mikecool
01.06.21
✎
20:54
|
(7) дык он онду и описал
|
|||
10
Ненавижу 1С
гуру
01.06.21
✎
20:56
|
(9) непонятно почему в языке запросов такое не сделали
|
|||
11
Said_We
01.06.21
✎
21:06
|
(8) В данном случае да, но для того, что бы вопросов не было написал как написал.
|
|||
12
Said_We
01.06.21
✎
21:09
|
(7) Эти функции в СКД выполняются на уровне SQL ?
|
|||
13
Ivan_495
01.06.21
✎
21:11
|
(12) да
|
|||
14
Said_We
01.06.21
✎
21:17
|
Точно? Просто я никогда не смотрел.
|
|||
15
Ivan_495
01.06.21
✎
21:20
|
||||
16
Ivan_495
01.06.21
✎
21:21
|
внутренних функций системы компоновки данных
|
|||
17
Ненавижу 1С
гуру
01.06.21
✎
21:37
|
(13) есть мнение, что нет
|
|||
18
Ivan_495
01.06.21
✎
21:49
|
(17) других вариантов все равно нет.
|
|||
19
Ненавижу 1С
гуру
01.06.21
✎
21:50
|
(18) вот и поговорили
|
|||
20
Ivan_495
01.06.21
✎
21:52
|
можно и на sql напрямую написать , если очень надо)) работают они шустро. можно и план запроса посмотреть, есои все так серьезно.
|
|||
21
Said_We
01.06.21
✎
22:12
|
(17) Я никогда не смотрел, но всегда думал, что это вычисляемое поле, которое рассчитывается в самом конце средствами самой СКД.
+ Оконные функции часто применяются не в итоговом запросе, а как раз до него, например для функций: ROW_NUMBER(), RANK(), DENSE_RANK() (18) К сожалению да.... |
|||
22
Ivan_495
01.06.21
✎
22:21
|
есс- но функции вычислитьвыражение() нет в sql и не будет, если только вы ее сами не напишите и не будете дергать через ado
|
|||
23
Ненавижу 1С
гуру
01.06.21
✎
22:28
|
(22) ну в зачем писать что вычисляется на стороне SQL?
|
|||
24
Said_We
04.06.21
✎
16:03
|
(23) Он сам, наверное, запутался. И написал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |