Hallo,
ich habe eine Tabelle hours mit den Spalten:
date, user, location, project, type, hours
Die Felder date, user, location, project, type sind primary key Felder.
Jetzt habe ich das Problem das z.B. 8 verschiedene types in der Tabelle sind, diese nun aber auf 4 Stück reduziert werden sollen:
1.1.2010, usera, locationa, projecta, typea, 5
1.1.2010, usera, locationa, projecta, typeb, 2
1.1.2010, usera, locationa, projectb, typea, 2
1.1.2010, usera, locationa, projectb, typeb, 8
Jetzt soll z.B. der Type typeb abgeschaft werden und alle Stunden, die auf diesen Type kontiert waren sollen auf den typea auf addiert werden.
1.1.2010, usera, locationa, projecta, typea, 7
1.1.2010, usera, locationa, projectb, typea, 10
Ich dachte mir, ich mach ein update Kommando mit einem INNER JOIN auf die gleiche Tabelle und addiere die Werte entsprechend auf, anschliessen lösche ich mit einem DELETE die alten Werte aus der Tabelle raus. (ein normales Update geht ja nicht, weil ich eine Kombination aus mehreren primary keys habe)
Ich hatte das folgende Kommando im Kopf:
Wenn ich das versuche, bekomme ich allerdings die Fehlermeldung:
The table 'hours' is ambigous.
Hat hier vllt. jemand eine Idee, wie man ein solches Update machen könnte?
Gruss
Matthias
ich habe eine Tabelle hours mit den Spalten:
date, user, location, project, type, hours
Die Felder date, user, location, project, type sind primary key Felder.
Jetzt habe ich das Problem das z.B. 8 verschiedene types in der Tabelle sind, diese nun aber auf 4 Stück reduziert werden sollen:
1.1.2010, usera, locationa, projecta, typea, 5
1.1.2010, usera, locationa, projecta, typeb, 2
1.1.2010, usera, locationa, projectb, typea, 2
1.1.2010, usera, locationa, projectb, typeb, 8
Jetzt soll z.B. der Type typeb abgeschaft werden und alle Stunden, die auf diesen Type kontiert waren sollen auf den typea auf addiert werden.
1.1.2010, usera, locationa, projecta, typea, 7
1.1.2010, usera, locationa, projectb, typea, 10
Ich dachte mir, ich mach ein update Kommando mit einem INNER JOIN auf die gleiche Tabelle und addiere die Werte entsprechend auf, anschliessen lösche ich mit einem DELETE die alten Werte aus der Tabelle raus. (ein normales Update geht ja nicht, weil ich eine Kombination aus mehreren primary keys habe)
Ich hatte das folgende Kommando im Kopf:
Code:
UPDATE hours SET hours=hours + b. hours FROM hours AS a INNER JOIN hours AS b ON a.date=b.date AND a.user=b.user AND a.location=b.location AND a.project=b.project WHERE a.type='typea' AND b.type='typeb'
The table 'hours' is ambigous.
Hat hier vllt. jemand eine Idee, wie man ein solches Update machen könnte?
Gruss
Matthias
Comment