कैसे करने के लिए गणना की चल कुल में sql पीछे की ओर

0

सवाल

दर्ज की छवि विवरण यहाँ

select id,date,amount,SUM (Amount)  OVER (PARTITION BY ID ORDER BY DATE desc)  AS runningbalance from sales

मैं यह कोशिश की है रिवर्स करने के लिए चल रहा है संतुलन से जा रहा है सबसे हाल ही में करने के लिए पुराने रिकॉर्ड. मैं कैसे कर सकते हैं रिवर्स करने के लिए इस के पीछे की ओर जाने के लिए चल रहा है संतुलन के अन्य तरीका है?

sql tsql
2021-11-23 20:51:45
3

सबसे अच्छा जवाब

2

यदि आपके ID के लिए अद्वितीय है प्रत्येक पंक्ति से हटाने के बाद, PARTITION BY ID और यह नहीं होगा राशि संचयी. रिवर्स करने के क्रम चल कुल बस रिवर्स ORDER BY के SUM:

DDL:

declare @sales table (
    ID int,
    Date date,
    Amount int);

insert into @sales
values
    (1, '2020-01-01', 15),
    (2, '2020-01-02', 10),
    (3, '2020-01-03', 5);

DML:

select ID, Date, Amount, 
    sum(Amount) over (order by Date) as RunningBalanceForward, 
    sum(Amount) over (order by Date desc) as RunningBalanceBackwards
from @sales
order by ID

परिणाम:

आईडी तारीख राशि RunningBalanceForward RunningBalanceBackwards
1 2020-01-01 15 15 30
2 2020-01-02 10 25 15
3 2020-01-03 5 30 5
2021-11-23 21:16:46
0

इसके अलावा चल कुल करने के लिए, का उपयोग row_number बनाने के लिए इस तरह के स्तंभ और विभाजन यह आईडी के आधार पर आदेश की तारीख से desc पैदा करने के लिए एक rowid तो आदेश द्वारा rowid

2021-11-23 21:11:41
0

सिर्फ एक उदाहरण दिखाने के लिए क्या है के विभाजन के लिए प्रयोग किया जाता है.

declare @Sales table (
  ID int identity(1,1) primary key,
  [Date] date,
  Store varchar(30),
  Amount int
  
);

insert into @Sales ([Date], Store, Amount)
values
  ('2020-01-01','A',1), ('2020-01-03','A',1)
, ('2020-01-05','A',1)
, ('2020-01-02','B',10), ('2020-01-04','B',10)
, ('2020-01-06','B',10)
;
    
select Store, [Date], Amount, 
    sum(Amount) over (partition by Store order by [Date] ASC) as RunningTotal, 
    sum(Amount) over (partition by Store order by [Date] DESC) as ReverseRunningTotal
from @Sales
order by Store, [Date] 
GO
स्टोर | तारीख | राशि | RunningTotal | ReverseRunningTotal
:---- | :--------- | -----: | -----------: | ------------------:
एक| 2020-01-01 | 1 | 1 | 3
एक| 2020-01-03 | 1 | 2 | 2
एक| 2020-01-05 | 1 | 3 | 1
बी| 2020-01-02 | 10 | 10 | 30
बी| 2020-01-04 | 10 | 20 | 20
बी| 2020-01-06 | 10 | 30 | 10
2021-11-23 21:06:26

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में