Veränderung zwischen Tabellen

sqlfrage

Neuer Benutzer
Beiträge
4
Hallo!

Bei der Bearbeitung einer Aufgabe ist bei mir folgendes Problem aufgetreten. Ich habe zwei Tabellen erstellt mit Namen und Noten aus dem Jahr 2008 und aus dem Jahr 2010.
Also bspw: (2008) (2010)
Tom 1,3 Tom 2,0
Jan 2,7 Jan 2,1
Tobias 2,1 Tobias 1,9

Wenn ich nun die beiden Tabellen vergleichen möchte und feststellen möchte, bei welchen Namen sich die Noten in den beiden Vergleichstabellen (2008/2010) geändert haben, mit welchem SQL-Befehl sollte ich da am besten arbeiten?

Vielen Dank schonmal!
 
Werbung:
Dein Tabellendesign ist kapott. Man erstellt bei sowas nicht für jedes Jahr eine neue Tabelle, sonder nimmt eine und trägt das da ein.

Code:
test=*# select * from t_2008 ;
  name  | note
--------+------
 Tom  |  1.3
 Jan  |  2.7
 Tobias |  2.1
(3 rows)

test=*# select * from t_2010 ;
  name  | note
--------+------
 Tom  |  2.0
 Jan  |  2.1
 Tobias |  1.9
(3 rows)

test=*# select t1.name, t1.note as "2008", t2.note as "2010", case when t1.note > t2.note then 'verbessert' when t1.note < t2.note then 'verschlimmert' end as entwicklung from t_2008 t1 left join t_2010 t2 using (name);
  name  | 2008 | 2010 |  entwicklung  
--------+------+------+---------------
 Tom  |  1.3 |  2.0 | verschlimmert
 Jan  |  2.7 |  2.1 | verbessert
 Tobias |  2.1 |  1.9 | verbessert
(3 rows)


test=*#

Den Fall, das es gleich schlimm blieb zu designen überlasse ich Dir zur Übung.
 
Zurück
Oben