धारणा
1.आपकी टेबल संरचना इस प्रकार है
Date | In Stock | Out Stock
2.आप एक नए कॉलम डालेंगे balance
. की गणना करने से पहले ।
3.दिनांक एक Primary Column
है (अद्वितीय + पूर्ण नहीं )
उपरोक्त धारणाओं को लेते हुए:
आपने एक SP . बना लिया है यदि आप C# . में उपयोग करना चाहते हैं
1.एक अस्थायी तालिकाCreate बनाएं और असाइन किया गया Row Number
रैंक () . का उपयोग करके
select
rank() OVER (ORDER BY [Date]) as [Rank],
t1.[Date],
t1.[in stock],
t1.[out stock]
--,t1.[in stock]-t1.[out stock] balance
into #temp1
from (your table name)
;
2.अब आप उपरोक्त temp table
का उपयोग कर रहे होंगे शेष राशि . प्राप्त करने के लिए
WITH x AS
(
SELECT
[Rank],
[Date],
[in stock],
[out stock],
bal=([in stock]-[out stock])
FROM #temp1
WHERE [Rank] = 1
UNION ALL
SELECT
y.[Rank],
y.[Date],
y.[in stock],
y.[out stock],
x.bal+(y.[in stock]-y.[out stock])
FROM x INNER JOIN #temp1 AS y
ON y.[Rank] = x.[Rank] + 1
)
SELECT
[Date],
[in stock],
[out stock],
Balance = bal
FROM x
ORDER BY Date
OPTION (MAXRECURSION 10000);
यह रहा SQL Fiddle जहां आप सत्यापित कर सकते हैं।