सिंपल इनर जॉइन को ट्रिक करना चाहिए। जब तक मैं आपको गलत नहीं समझ रहा हूँ, आप जो चाहते हैं वह एक रनिंग टोटल है, सही है?
यह उदाहरण डमी डेटा के साथ एक डमी टेबल बनाता है, फिर रनिंग टोटल के लिए इनर जॉइन का उपयोग करता है। प्रदर्शन के दृष्टिकोण से, सामान्य तालिका अभिव्यक्ति अधिक कुशल होने की संभावना है। लेकिन सादगी के लिए, इनर जॉइन माई प्रेफरेंशियल हो।
/* Dummy table */
create table testing1
(col1 int not null identity(1,1),
col2 varchar(5),
col3 int)
insert into testing1
values ('a', 10), ('a', 20), ('a', 30), ('b', 40), ('b', 50)
/* Running total example */
SELECT a.col1
, a.col2
, a.col3
, SUM(b.col3) AS total
FROM testing1 a INNER JOIN testing1 b
ON a.col1 >= b.col1
AND a.col2 = b.col2
GROUP BY a.col1, a.col2, a.col3
ORDER BY a.col1
/* Edit to include Output */
col1 col2 col3 total
1 a 10 10
2 a 20 30
3 a 30 60
4 b 40 40
5 b 50 90