Announcement

Collapse
No announcement yet.

SQL Queries

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

  • #16
    Originally posted by nils007 View Post
    ...hm, Die Tabelle 'Major' besteht ja nur aus dname, sid. All diese Attribute hab ich ja eigentlich schon berücksichtigt, oder nicht?
    Tja und ich kenn die Beziehungen zwischen den Tabellen nicht - ich kann nur anhand der Tabellen- und Feldnamen raten

    Originally posted by nils007 View Post
    ...Das Distinct hab ich deswegen reingenommen, weil Namen teilweise doppelt dabei waren. Darum glaub ich auch, dass die Query irgendwo noch nicht ganz stimmt. Oder ist das möglich dass ein Name 2-mal erscheint??
    Wenn Namen mehrfach erscheinen, dann ist kein Fehler in der Abfrage. Der INNER JOIN zwischen student und enroll trifft dann einfach für einige Studenten mehrfach zu. Dies kann man nun z.B. noch mit einem DISTINCT (wie ja bereits von dir getan) lösen oder man wandelt den JOIN wieder in ein Subselect WHERE ... IN ... um. Da die Abfrage dadurch an Komplexität zunimmt, würde ich hier auch einfach ein DISTINCT verwenden. Es sein denn die Aufgabenstellung verbietet dies ausdrücklich.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #17
      Danke allen für die Mithilfe, bis auf Frage 9 ist jede Query geschafft...

      Ich glaub ich habe die bei der Prüfung auch noch fast hinbekommen.

      Danke nochmal.

      mfg
      smog

      Comment


      • #18
        Bevor ich mir die Mühe mache - besteht denn Interesse 9. noch aufzulösen
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #19
          Hallo,

          natürlich besteht noch Interesse! Ich möchte ja wissen wie weit ich die Frage richtig habe ;-)

          smog

          Comment


          • #20
            Na gut, dann will ich mal meine Lösung zur Diskussion stellen
            Der Beste averagegrade einer Schule ist der:
            [highlight=sql]
            select max(s.averagegrade) as highestgrade
            from STUDENT s left join MAJOR m on m.sid = s.sid
            where m.dname = einerSchule
            [/highlight]
            Der zweitbeste ist der Beste von denen die schlechter als obiger Allerbester sind:
            [highlight=sql]
            select max(s.averagegrade) as secondhighestgrade
            from STUDENT s left join MAJOR m on m.sid = s.sid
            where s.averagegrade < (
            select max(si.averagegrade) as highestgrade
            from STUDENT si left join MAJOR mi on mi.sid = si.sid
            where mi.dname = m.dname)
            and m.dname = einerSchule
            [/highlight]
            Jetzt brauchen wir nur noch die Namen dazu:
            [highlight=sql]
            select s2.sname
            from STUDENT s2 left join MAJOR m2 on m2.sid = s2.sid
            where s2.averagegrade = (
            select max(s.averagegrade) as secondhighestgrade
            from STUDENT s left join MAJOR m on m.sid = s.sid
            where s.averagegrade < (
            select max(si.averagegrade) as highestgrade
            from STUDENT si left join MAJOR mi on mi.sid = si.sid
            where mi.dname = m.dname)
            and m.dname = m2.dname)
            [/highlight]

            Hast du es auch so gemacht?

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #21
              Hallo,

              ja, im Prinzip schon. Aber wieso Joinst du auf die Major? Student Name und Avgrade sind in der student table oder nicht? Sonst, von der Abfolge hab ich es auch so gemacht.
              Sieht so aus als wär sogar ein bisschen was hängen geblieben. Wer weiß, vielleicht werd ich ja mal Datenbank programmierer ;-)))

              greetz
              smog

              Comment


              • #22
                Originally posted by smog View Post
                ...Aber wieso Joinst du auf die Major? Student Name und Avgrade sind in der student table oder nicht? ...
                Weil ich die Augabenstellung gelesen habe .
                List the student names with the second highest average grade in their major schools.
                Es ging doch um die zweitbesten pro Schule und nicht um den Zweitbesten.

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment

                Working...
                X