powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Накопительный итог, с добавками
11 сообщений из 11, страница 1 из 1
Накопительный итог, с добавками
    #39734213
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть бочка с топливом.
Туда топливо заливают иногда.
И от туда его забирают.

Нужен получить ск. когда там было топлива
Все упростил
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
declare @tancer table (dat date,qty int)
Insert into @tancer values 
('2018-10-10',2000),
('2018-10-15',2000)

declare @consumer table (dat date,qty int)
Insert into @consumer values 

('2018-10-01',100),
('2018-10-02',200),
('2018-10-03',100),
('2018-10-04',100),
('2018-10-05',100),
('2018-10-06',100),
('2018-10-07',100),
('2018-10-08',100),
('2018-10-09',100),
('2018-10-10',100),
('2018-10-11',100),
('2018-10-12',100),
('2018-10-13',100),
('2018-10-14',100),
('2018-10-15',100),
('2018-10-16',100),
('2018-10-17',100),
('2018-10-18',100),
('2018-10-19',100),
('2018-10-20',100),
('2018-10-21',100),
('2018-10-22',100)

--это начальное значение
declare @tanc	int=3000

select dat,qty, @tanc-sum(qty) over(order by dat) sm 
	from @consumer
	


Не получается адекватно добавить добавление из таблицы @tancer
Направьте...

На клиенте легко решается, но не нравится)
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39734264
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
; with b as (
    select
        a.dat
        , a.qty
    from    @tancer a
    union all 
    select
        a.dat
        , - a.qty
    from    @consumer a
)
select
    b.*
    , remainder = @tanc + sum ( qty ) over ( order by b.dat )
from    b  
order by
    b.dat 
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39734340
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,
Спасибо.
Когда видишь, как элементарно все решается, берет досада, почему сам не подумал в этом направлении.
Все же мешает, "процедурное" мышление
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39734363
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А причина в том, что Вы один и тот же процесс "изменение количества" поделили на два - "добавление" и "отбор", хотя различие только в атрибуте (знак изменения).
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39734940
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaА причина в том, что Вы один и тот же процесс "изменение количества" поделили на два - "добавление" и "отбор", хотя различие только в атрибуте (знак изменения).
Ага. Теперь в логике предусмотрите, чтобы в бочке не было отрицательных объемов топлива.
... и еще проверочный запрос сделайте, чтобы отрицательных объемов топлива не образовалось после любого из отборов.
:-))))))
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39734953
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,
Просто угадали.
Бочка виртуальная.
И нужно знать, когда ушли в минус, что бы "добавить".

Логика о которой вы говорите, в другом месте, и там все ясно.
И в данном случае, уход в минус, не причина, не заправляться, это просто сигнал, что надо еще платить)
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39734972
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdoruaggster,
Просто угадали.
Бочка виртуальная.
И нужно знать, когда ушли в минус, что бы "добавить".

Логика о которой вы говорите, в другом месте, и там все ясно.
И в данном случае, уход в минус, не причина, не заправляться, это просто сигнал, что надо еще платить)

Поэтому то и речь идёт про одну таблицу. Одна бочка, одна сущность, одна таблица и две операции над ней.
Так как 99% вероятности, что цифры приход/расход записываются вручную, то наверняка существуют алгоритмы на фактическую усушку утруску, которые проще реализовать в приложении, чем базой, а одной таблицей управлять проще.
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39735267
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizza,

Вы вообще не о том.
Залив в бочку, это таблица, помимо того, полно еще связанных сущностей.
Остаток в бочке на дату, от которого идут все танцы.
А расход их бочки, вообще, сопутсвующий процесс, совершенно других сущностей.
В частности, расход берется из путевки, при условии, что заправка их бочки.

То что вы предложили, видится в совсем примитивном случае.
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39735345
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor,

Конечно у вас свой случай со своими, видимо, особенностями.

Я пишу про одну таблицу для тех, кто будет искать похожую на вашу задачу по форуму и что бы люди не копировали решение, а думали удобно ли будет им в их условиях. Если например у человека несколько ёмкостей, в которых надо учитывать приход/расход, то это по две таблицы на ёмкость - ну совсем неудобное решение может получиться к которому придется воротить запросы.
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39735405
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizzaКонечно у вас свой случай со своими, видимо, особенностями.

Да никаких особых особенностей.
Все как у большинства, с мелочами.
Емкость, тут вообще не у дел.
Не путайте информационную задачу, с реальной.
Тут легко видится аналогия, с платежами - продажами.
Тоже в одну таблицу?
...
Рейтинг: 0 / 0
Накопительный итог, с добавками
    #39735833
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor,

Это уже в раздел Проектирование БД тема.

Я не очень понимаю, что вы имеете под "платежами - продажами", видимо, если это аналогия с доливом/расходом топлива из бочки, то речь идет о деньгах приход/расход, то для меня решение однозначно в одну таблицу. Меня учили правилам, что для одной сущности родственные операции так делаются, хотя бы для целей масштабирования.

Вполне допускаю, что вы, с целью упрощения, опустили детали задачи, которые и определили подход именно с двумя таблицами. Например если у вас при заливе топлива в бочку в какой то момент залива происходит смена собственника топлива во всей бочке или вообще это превращается не в топливо, а в какую то топливную смесь и это надо все фиксировать...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Накопительный итог, с добавками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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