2014-10-07 42 views
0

我必須在SQL服務器中編寫存儲過程(或SQL查詢),其中我將有2列即Month和Count。計數值表示在這兩列中存在的同一表中已經存在的文檔的數量。 在月份列中,會有12個月和計數欄,我想要增加當月的文件數量和文件數量,直到上個月。例如,一月份我有20份文件,2月份有10份文件,此存儲過程將返回20 + 10 = 30月份的二月份文檔,同樣如何。我可以如何實現這一點。用於添加以前數據的SQL查詢

+3

首先嚐試一些東西。 – Mihai 2014-10-07 10:17:46

+1

請提供初始腳本和所需的輸出。 – zaratustra 2014-10-07 10:19:34

+0

您能否提供帶有值的樣本數據表? – Mukund 2014-10-07 10:20:10

回答

0

根據您所提供的部分信息,下面的僞代碼應幫助:

create table t1 (month int, [countdocs] int) 
insert into t1 values (1,20),(2,10) 

SELECT Cur.month, isnull(Cur.countdocs,0) + isnull(Prv.countdocs,0) AS countdocs 
FROM t1 AS Cur 
LEFT OUTER JOIN t1 AS Prv 
ON Cur.month = Prv.month + 1; 
+0

我認爲他只需要返回一行,即使在你的進步之後,我的頭也在撓撓。:) 它相當簡單的總和(文檔)月份<= @month – Recursive 2014-10-07 10:27:33

+0

我希望輸出12行(每行1行和相應的計數)。我想在SQL Query中使用Lead,Lag子句,但不確定它是否能夠在2012,2008,2005,2000等所有版本的SQL Server上成功運行,因爲我想將它用於不同的具有不同SQL版本作爲後端的應用程序。 – Mandar 2014-10-07 11:44:28

+0

建議查詢時遇到了什麼問題?什麼不在這裏工作? – Deepshikha 2014-10-07 12:09:10

0

查找在SQL服務器窗口功能。你似乎想要一個跑步總數,並有技術來從窗口fn獲得這些。