2017-02-15 4 views
1

Es gibt zwei Tables A und Table BT- SQL-Update Ausgabe

Tabelle A

Tabelle B

Date   Amount  Budget 
9-1-2016  12 
9-1-2016  15 
9-1-2016  17 
9-2-2016  15 
9-2-2016  10 
9-3-2016  12 

Ich möchte das Tagesbudget in Tabelle teilen A zu den entsprechenden g Artikel in Tabelle B wie folgt:

Date   Amount  Budget 
9-1-2016  12   7 
9-1-2016  15   7 
9-1-2016  17   7 
9-2-2016  15   5 
9-2-2016  10   5 
9-3-2016  12   0 

Zum Beispiel kann das Budget von 9-1-2016in Tabelle A in die 3 Elemente in Tabelle B unterteilt ist, die das gleiche Datum haben.

+0

Basierend auf welcher Logik .....? Deine Zahlen ergeben keinen Sinn. – Siyual

+0

Das Budget sollte für das gleiche Datum von Tabelle A auf Tabelle B verteilt werden. –

+0

Also für das Datum (9-1-2016) in Tabelle A ist der Wert des Budgets 21. Ich möchte, dass dieser Wert gleichmäßig in Tabelle B aufgeteilt wird Es gibt drei Zeilen mit diesem Datum. Macht das jetzt Sinn? Ich bin glücklich, mehr zu erklären. –

Antwort

2

Dies sollte die Arbeit machen:

Hinweis ich einen LEFT JOIN mit Tabelle A verwendet haben, nur Pflege von nicht vorhandenen Budgets zu nehmen.

update tableB 
set Budget = coalesce(a.Budget,0)/c.numB 
from tableB b 
    left join tableA a on a.Date = b.Date 
    inner join (select Date, count(*) as numB 
       from tableB 
       group by date) c on c.Date = b.Date; 
+0

Danke. Das ist toll. Können Sie bitte eine Update-Anweisung zur Verfügung stellen –

+0

Wohoo. Vielen Dank –

Verwandte Themen