2013-03-07 3 views
0

je dois résumer les lignes précédentes en sql 2005. Cette ma tablesomme précédente des lignes serveur SQL

id date  valuein  valueout misstotal  
5 2/2/2013 0   500  -500  
2 25/2/2013 0   300  -300 
7 25/2/2013 900   0   900 
4 25/2/2013 2000   0   2000 

misstotal = (valuein - valueout)

Ce n'est pas le problème

Je veux une colonne avoir le solde total comme ci-dessous dans la colonne total.

id date  valuein  valueout misstotal  total 
5 2/2/2013 0   500  -500   -500 
2 25/2/2013 0   300  -300   -800 
7 25/2/2013 900   0   900   100 
4 25/2/2013 2000   0   2000   2100 

Alors, quel est le code pour faire cette somme?

Répondre

0

Ce blog vous donne un certain nombre d'options pour le calcul d'un total en cours dans SQL Server 2005:

http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005---the-optimal.aspx

Une bonne façon est de vous insérer des données dans une table temporaire, puis mettre à jour ce tableau pour remplir la colonne totale en cours d'exécution comme ceci:

SET @RunningTotal = 0 

UPDATE @TmpTable 
SET @RunningTotal = total = @RunningTotal + misstotal 
FROM @TmpTable 

SELECT * FROM @TmpTable 
+0

Bien que cela puisse répondre à la question, [il serait préférable] (http://meta.stackexchange.com/q/8259) pour inclure les éléments essentiels de la réponse ici, et fournir le lien pour référence. – Taryn