powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти остаток от итоговой суммы по позициям
3 сообщений из 3, страница 1 из 1
Найти остаток от итоговой суммы по позициям
    #40100812
Sadmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер!

Подскажи пожалуйста как найти движение товаров по дню.

У нас есть сумма на конец дня это Итог за день = 5

Требуется найти движение в промежутках времени, а именно из последнего вычитаем предыдущее, то есть из 5 - 2 = 3, далее из предпоследнего предыдущее ему: 2 - 1 = 1, далее между последними двумя датами: 1 - 2 = -1

В итоге должно получиться так:
авторЗа 2021-09-14 15:25:00 Товар_3 = 3
За 2021-09-14 12:47:00 Товар_2 = 1
За 2021-09-14 10:22:00 Товар_1 = -1


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table #info
       (
       Date  smalldatetime,
       Brief varchar(20),
       Qty   money
       )

select '2021-09-14 21:36:00', 'Итог за день', 5 union all
select '2021-09-14 15:25:00', 'Товар_3',      2 union all
select '2021-09-14 12:47:00', 'Товар_2',      1 union all
select '2021-09-14 10:22:00', 'Товар_1',      2 
...
Рейтинг: 0 / 0
Найти остаток от итоговой суммы по позициям
    #40100975
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sadmann,

странный расчёт, в колонке qty что находится - остаток или продажа? Если все товары различаются, то почему итог на конец дня общий?
...
Рейтинг: 0 / 0
Найти остаток от итоговой суммы по позициям
    #40100998
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sadmann,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create table #info
       (
       Date  smalldatetime,
       Brief varchar(20),
       Qty   money
       )

insert into #info
select '2021-09-14 21:36:00', 'Итог за день', 5 union all
select '2021-09-14 15:25:00', 'Товар_3',      2 union all
select '2021-09-14 12:47:00', 'Товар_2',      1 union all
select '2021-09-14 10:22:00', 'Товар_1',      2 

;with cte as 
(select *, lag(qty) over (order by date desc) lgQty  from #info)
select N'За ' + convert(nvarchar, Date, 20), Brief, lgQty - Qty as Delta from cte where lgQty is not null
order by Date desc;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти остаток от итоговой суммы по позициям
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]