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

virtuelle Tabelle verbinden

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von gnuso, 19 Juli 2017.

  1. gnuso

    gnuso Benutzer

    Hallo,

    ich habe folgendes Problem. Ich will eine Abfrage machen von 2 Tabellen. Ich habe in einer Tabelle customer einmal first_name last_name und customer_id (Primärschlüssel) und eine weitere Tabelle payment mit customer_id und amount.

    Nun soll ich den durchschnittlichen Betrag berechnen, der größer 5 ist, den ein Kunde ausgibt. Ausgegeben soll dann der Vorname, Nachname und der durchschnittliche Leihbetrag.

    Ich habe mir überlegt, erst eine Tabelle mit customer_id und amount zu erstellen:
    SELECT customer_id, AVG(amount)
    FROM payment
    WHERE amount > 5.00
    GROUP BY customer_id

    Nun ist meine Frage, wie komme ich von der customer_id auf die andere Tabelle mit first_name und last_name und ersetze dann so zu sagen die customer_id durch Vor- und Nachname.

    Beste Grüße gnuso
     
  2. akretschmer

    akretschmer Datenbank-Guru

    einfach joinen.

    Code:
    test=# create table customer(id int primary key, name text);
    CREATE TABLE
    test=*# create table payment(c_id int references customer, amount int);
    CREATE TABLE
    test=*# select c.name, avg(p.amount) from customer c left join payment p on c.id=p.c_id group by c.name;
     name | avg
    ------+-----
    (0 Zeilen)
    
    Das anzupassen, auch mit Deiner Where-Condition, ü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