Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Veränderung zwischen Tabellen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von sqlfrage, 12 April 2016.

  1. sqlfrage

    sqlfrage Neuer Benutzer

    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!
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden