Announcement

Collapse
No announcement yet.

SQL Frage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Frage

    Hi

    Ich soll das MIN MAX und AVG (Durchschnitt) Alter von mehreren Leuten bestimmen. Ich habe dazu eine Tabelle wo geboren und gestorben drin steht.
    Daraus ermittel ich grob das Alter (gestorben - geboren)

    Ich weiß nur nicht wie ich jetzt eine neue Spalte namens Alter erstelle mit den Ergebnissen aus gestorben-geboren, damit ich MIN(Alter) machen kann.
    MIN(gestorben-geboren) klappt ja nicht.

    HILFE!!!

  • #2
    Auch hallo.

    Tabellendefinitionen werden mit ALTER geändert. In die neue Spalte kann man dann die Differenz zwischen Tabelle.geboren und Tabelle.gestorben mit INSERT einfügen.

    Gruss
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      Hi

      Irgendwie ist mir das noch nicht ganz klar. Ich weiß nicht genau wie ich das jetzt aufschreiben soll.

      Wo kann ich das Alter und Insert denn hinsetzen?

      Comment


      • #4
        Ich hab jetzt sowas probiert. Geht das???

        SELECT name, vorname, (gestorben - geboren) as "Maximalalter" from Komponist
        where (gestorben-geboren) = (SELECT max(gestorben-geboren) from Komponist)

        SELECT name, vorname, (gestorben - geboren) as "Mindestalter" from Komponist
        where (gestorben-geboren) = (SELECT min(gestorben-geboren) from Komponist
        where gestorben > 0 and geboren > 0)

        SELECT round(avg(gestorben-geboren)) as "Durchschnittsalter" from Komponist
        where gestorben > 0 and geboren > 0

        Comment


        • #5
          Hallo,

          das Ändern der Tabelle geht so. Das ALTER , das Markus meinte ist ein Befehl:

          ALTER TABLE komponist ADD alter INTEGER

          Dann kannst Du das Alter ausrechechne:

          Update Komponist set alter=gestorben-geboren
          where geboren>0 And gestorben>0

          Gruß frauwue
          docendo discimus

          Comment

          Working...
          X