Om du kör MySQL:
För alla:
SELECT MAX(WorkHour) FROM MinTabell
För kvinnor:
SELECT MAX(WorkHour) FROM MinTabell WHERE Gender = 'W'
För män:
SELECT MAX(WorkHour) FROM MinTabell WHERE Gender = 'M'
5 svar · 474 visningar · startad av sadsmile
Hej
Jag har en tabell som (bland annat) innehåller namn på anställda, kön samt arbetade timmar.
Nu skulle jag, med en enda SQL-sats, vilja ta fram den man samt den kvinna som har arbetat mest. Detta har jag inte fått att fungera riktigt så jag undrar nu om någon kan ge mig ett tips.
Namnen på dessa fält är Name, Gender, WorkHour.
Värderna för Gender är W och M.
Och jag skulle alltså vilja ha fram ett resultat som skulle kunna se ut så här:
Name Gender WorkHour
================================
Anna Andersson W 200
Arne Arnesson M 400
Tacksam för tips
Anders
Om du kör MySQL:
För alla:
SELECT MAX(WorkHour) FROM MinTabell
För kvinnor:
SELECT MAX(WorkHour) FROM MinTabell WHERE Gender = 'W'
För män:
SELECT MAX(WorkHour) FROM MinTabell WHERE Gender = 'M'
select name,gender,workhour
from tabell as q
where workhour in
(select max(workhour)
from tabell
where gender = q.gender)
Oskars... Det där visste jag och det ger inte heller svaret på min fråga eftersom det du skriver är två SQL-satser. Jag ville ha fram både den kvinna som har arbetat mest och den man som har arbetat mest i en och samma sats.
LarsG.... Skall ta och testa din lösning. Återkommer senare med resultat. Tack så länge.
Lars... Det fungerade inte tyvärr. Fick skriva om din kod lite för att den skulle passa min databashanterare (Firebird) men som sagt, fick inte fram något resultat. Skrev denna kod...
Select g.name,g.gender,g.workhour
from testar g
where workhour in
(select max(workhour)
from testar
where gender = g.gender)
Edit// Jag tar tillbaka det hela. Gjorde en enkel liten justering och då fungerade det hela.
Tack för hjälpen