ilch Forum » Allgemein » HTML, PHP, SQL,... » SQL Frage

Geschlossen
  1. #1
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Hi Leute,

    ich hab folgende Tabelle:
    gesperrtes Bild

    und möchte den Mitarbeiter der den höchsten Stundensatz hat pro firma ermitteln

    mein select:

    SELECT c.Firma as Beratungsfirma, c.ConsultantID, c.Name. MAX(c.Stundensatz)
    FROM Consultant c
    Group BY c.Firma;



    und ausgeben tut er mir das:
    gesperrtes Bild

    bei Firma WGI sollte als name Garbageman stehen nicht Dogbert ... den höchsten Stundensatz nimmt er mir aber den namen bei WGI vertauscht er kann mir jemand sagen wieso?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Oehm

    SELECT c.Firma as Beratungsfirma, c.ConsultantID, c.Name, MAX(c.Stundensatz)
    FROM Consultant c
    LIMIT 0, 1;


    SELECT c.Firma as Beratungsfirma, c.ConsultantID, c.Name, MAX(c.Stundensatz)
    FROM consultant c
    Group BY c.Firma
    LIMIT 0, 1;



    Zuletzt modifiziert von Siggi am 19.01.2014 - 13:23:13
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ne Siggi das ist es nicht ...

    es geht ja darum ich hab 2 Beratungsfirmen TSW und WGI und die haben beide N angestellte

    und jetzt will ich für beide beratungsfirmen rausfinden welcher Ihrer Mitarbeiter den höchsten Stundensatz haben
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Ach so da habe ich gar nicht so direkt drauf geachtet zwinker
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Ja das ändert auch nichts^^ ... und das LIMIT ist eher schlecht weil mir dann nur ein Eintrag ausgegeben wird der von Dilbert ...
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Am einfachsten geht es wenn du bei deinen GROUP BY ein HAVING einfügst.

    GROUP BY c.Firma HAVING MAX(c.Stundensatz)
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    das hatte ich auch schon probiert ... das ergebnis bleibt leider das gleiche ... wie oben ...
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Achso sry ja stimmt. Das wirst du nicht so leicht hinbekommen.

    (du wirst wohl mit einer Art Subselect das Lösen müssen oder die tabelle sich selbst nochmal joinen)
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    das komische ist halt einfach dass TGI korrekt ist nur das WGI nicht ...

    so ein schund ey zunge
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Wäre es nicht so am einfachsten:

    SELECT c.Firma as Beratungsfirma, c.ConsultantID , c.Name FROM Consultant c
    Group BY c.Firma ORDER BY c.Stundensatz ;
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    das ist doch ne ganze andere Abfrage ...
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Er zeigt halt die erste Zeile an, und die ist bei einem der Beispiele auch der mit dem größten Wert.

    Es müsste wie Pion schon schrieb mit einer Subquery gemacht werden, wobei zu Bedenken ist, dass auch mehrere Zeilen den gleichen höchsten Wert haben können.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten