2010-10-31 4 views
1

J'ai Table1, où je veux modifier previous_sum où previous_sum est la somme du champ de nombres dans le tableau 2 jusqu'à cette date spécifique. Exemple:Modifier un champ de table en y ajoutant

Table1 

Date___|___previous_sum 
01/01__|___20 
01/02__|___50 
01/03__|___100 

Table2 

Date___|___numbers 
01/01__|___20 
01/02__|___30 
01/03__|___50 

Ainsi, previous_sum est 0 au début, mais en fonction de ce qui est dans le domaine des nombres jusqu'à cette date, je le veux ajouter en conséquence à previous_sum.

+0

"À cette date précise" ou "jusqu'à cette date spécifique"? – Quassnoi

+0

Jusqu'à cette date spécifique. Désolé, va éditer. – AnEventHorizon

+1

Et qu'est-ce que «psql»? Est-ce que c'est «PostgreSQL» ou «Oracle (PL/SQL)»? – Quassnoi

Répondre

2
UPDATE table1 
SET  previous_sum = 
     COALESCE(
     (
     SELECT SUM(numbers) 
     FROM table2 
     WHERE table2.date <= table1.date 
     ), 0) 
0
UPDATE Table1 
SET [previous_sum] = (SELECT SUM(numbers) WHERE Table2.Date <= Table1.Date) 
0

Je ne suis pas tout à fait sûr de ce que vous demandez, mais je pense que vous voulez dire quelque chose comme ça?

UPDATE Table1 SET Previous_Sum = Table2.numbers 
FROM Table1 
INNER JOIN Table2 ON Table1.Date = Table2.Date 

P.S. Si vous avez besoin d'une SUM, ajoutez simplement un groupe de et SUM les numéros

Questions connexes