Вход | Регистрация
 

Как в запросе выбрать сумму накопительно по периоду

Как в запросе выбрать сумму накопительно по периоду
Я
   Слесарь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
 
 Партнерская программа EFSOL Oblako
   acht
 
1 - 01.06.21 - 17:18
Левое соединение самого себя по дате меньше или равно и суммировать присоединенную таблицу
   Слесарь74
 
2 - 01.06.21 - 17:38
не понял про "и суммировать присоединенную таблицу"
   Слесарь74
 
3 - 01.06.21 - 17:39
что значит суммировать присоединенную таблицу. Можно на примере показать ?
Был бы признателен
   SleepyHead
 
4 - 01.06.21 - 17:39
(2) https://helpf.pro/faq/view/955.html

в гугле забанили что ли?
   Слесарь74
 
5 - 01.06.21 - 17:43
(4) Спасибо!
   Said_We
 
6 - 01.06.21 - 20:31
Жаль..., что нельзя писать как-то так:

sum(ФактическийСдельныйФОТ) over(order by Дата rows between unbounded preceding and current row)

Если перевести, то сумма значения колонки "ФактическийСдельныйФОТ" для строк между самой первой строкой и текущей.
И нет тут никаких левых соединений и пишется это короче и выполняется это на порядок быстрее.
   Ivan_495
 
7 - 01.06.21 - 20:40
(6)  в скд есть такие функции и более серьезные для ресурсов.
   Ненавижу 1С
 
8 - 01.06.21 - 20:46
(6) по-моему достаточно 
sum(ФактическийСдельныйФОТ) over(order by Дата)
Остальное добавиться по-умолчанию
   mikecool
 
9 - 01.06.21 - 20:54
(7) дык он онду и описал
   Ненавижу 1С
 
10 - 01.06.21 - 20:56
(9) непонятно почему в языке запросов такое не сделали
   Said_We
 
11 - 01.06.21 - 21:06
(8) В данном случае да, но для того, что бы вопросов не было написал как написал.
   Said_We
 
12 - 01.06.21 - 21:09
(7) Эти функции в СКД выполняются на уровне SQL ?
   Ivan_495
 
13 - 01.06.21 - 21:11
(12) да
   Said_We
 
14 - 01.06.21 - 21:17
Точно? Просто я никогда не смотрел.
   Ivan_495
 
15 - 01.06.21 - 21:20
   Ivan_495
 
16 - 01.06.21 - 21:21
внутренних функций системы компоновки данных
   Ненавижу 1С
 
17 - 01.06.21 - 21:37
(13) есть мнение, что нет
   Ivan_495
 
18 - 01.06.21 - 21:49
(17) других вариантов все равно нет.
   Ненавижу 1С
 
19 - 01.06.21 - 21:50
(18) вот и поговорили
   Ivan_495
 
20 - 01.06.21 - 21:52
можно и на sql напрямую написать , если очень надо)) работают они шустро. можно и план запроса посмотреть, есои все так серьезно.
   Said_We
 
21 - 01.06.21 - 22:12
(17) Я никогда не смотрел, но всегда думал, что это вычисляемое поле, которое рассчитывается в самом конце средствами самой СКД.
+ Оконные функции часто применяются не в итоговом запросе, а как раз до него, например для функций: ROW_NUMBER(), RANK(), DENSE_RANK()

(18) К сожалению да....
   Ivan_495
 
22 - 01.06.21 - 22:21
есс- но функции вычислитьвыражение() нет в sql и не будет, если только вы ее сами не напишите и не будете дергать через ado
   Ненавижу 1С
 
23 - 01.06.21 - 22:28
(22) ну в зачем писать что вычисляется на стороне SQL?
   Said_We
 
24 - 04.06.21 - 16:03
(23) Он сам, наверное, запутался. И написал.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.