Probleme bei einer SQL Abfrage

  • Hallo Forum,
    Ich sitze in meinem Studiengang momentan an einem Übungsblatt für eine Datenbank-Aufgabe. Bei einer Teilaufgabe komme ich seit zwei Tagen nicht weiter, vielleicht könnt ihr mir ja helfen.
    Also zur Aufgabenstellung:
    Ich muss aus einer Beispieldatenbank herausarbeiten, welche Firmenabteilung an welchem Ort die größte ist, bezogen auf die Mitarbeiterzahl. Nur diese darf zum Schluss angezeigt werden.


    Die verlinkte "Tabelle" zeigt alle Abteilungen an allen Orten mit der Mitarbeiterzahl


    Hier gehts zur Tabelle


    Der SQL Text dazu lautet:
    Select T1.Department, T1.Location,count(*) as Mitarbeiterzahl
    from Department T1, Employee T2
    where T1.Dept_No=T2.Dept_No
    group by T1.Department, T1.Location


    Wie könnte die nun folgende having Klausel aussehen, damit zB für BurlingtonVT nur "Research and Development" angezeigt wird.


    Ich hoffe man kann sowas im Blindflug beantworten, ohne die Datenbank vor sich zu haben.
    Sollten irgendwelche wichtigen/benötigten Infos fehlen, bitte einfach fragen!


    MFG


    Christian

  • Das ist für alle schwer, weil dass schon sehr fortgeschrittenes SQL ist.
    Denke nicht, dass dir dass jemand so leicht beantworten kan,, weil dass z.b.: auf ner HP gar nicht gebraucht wird


    Bye Ls4

    Wär Rächtsräibphähler phindet darf sich phreuen

  • Select T1.Department, T1.Location,count(*) as Mitarbeiterzahl
    from Department T1, Employee T2
    where T1.Dept_No=T2.Dept_No
    group by T1.Department, T1.Location


    having


    T1.Department LIKE ("Research and Development") oder einfach T1.Department = "..."


    Sollte gehen ... :)


    Kannst natürlich das ganze auch in die Where-Clausel einbauen und die beiden Tabellen mit einem Join verknüpfen etc.

    -> Tristan @ Work <-
    --

  • Mir fallen die Haare aus wenn ich sehe, dass jemand SQL Befehle nicht durchgehend groß schreibt :D Aber bleibt jedem selbst überlassen.


    Grundsätzlich gibt es die Funktion MAX() um die Höchstzahl von Mitarbeitern zu finden. Also wenn du by Location groupst und dann die filterst, die having max(mitarbeiter) dann ... :confused: :D


    Ehrlichgesagt versteh ich die Aufgabe nichtmal komplett - ich seh ja auch nicht alle nötigen Tabellen. Ist die Verlinkte Tabelle T1? Was tut T2 überhaupt zur Sache? *rätsel*


    BTW: Hausaufgabenthreads unerwünscht (gilt auch für Studenten) :p


    -SF³

  • Hat sich erledigt


    Hallo zusammen,
    Vielen Dank schon mal für eure Antworten. Mttlerweile hat sich das Problem erledigt. Das Hausaufgabenthreads unerwünscht sind, habe ich wohl übersehen. Sorry dafür. :(


    MFG


    Christian

  • Re: Hat sich erledigt


    Zitat

    Original geschrieben von General_K
    Das Hausaufgabenthreads unerwünscht sind, habe ich wohl übersehen. Sorry dafür. :(


    Betrachten wir es als Denksport ;)


    ok, meine lösung - wenn auch etwas wackelig ;)
    (ich weis nicht wie die db aussieht, deshalb gehe ich mal der einfachheit halber von einer tabelle aus)

    Code
    select top 1 department, location, count(*) anzahl_ma
    from departments
    group by department, location
    order by anzahl_ma desc


    wenn es eine andere variante gibt würde mich die wirklich interessieren... prinzipiell ist es in sql sehr schwer einen bestimmten datensatz aus einer gruppe zu selecten

    !ND - E71

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!