Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2012-01-16, 20:39
  #1
Medlem
Voldemort2s avatar
Jag försöker att få ut den högsta lönen och vem som har den i alla brancher i en tabell med kolumnerna Efternamn, arvode och branch. Svaret skall grupperas efter branch. Någon som har tips på hur man skall skriva i Oracle?
Citera
2012-01-16, 20:52
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av Voldemort2
Jag försöker att få ut den högsta lönen och vem som har den i alla brancher i en tabell med kolumnerna Efternamn, arvode och branch. Svaret skall grupperas efter branch. Någon som har tips på hur man skall skriva i Oracle?
Borde väl gå att genomföra med en GROUP BY och HAVING, det är ju standard-sql.
Citera
2012-01-16, 20:54
  #3
Medlem
Voldemort2s avatar
Jag har bara provat group by och då blev det fel. Har inte stött på having. Vad gör det?
Citera
2012-01-16, 20:56
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av Voldemort2
Jag har bara provat group by och då blev det fel. Har inte stött på having. Vad gör det?
http://www.w3schools.com/sql/sql_having.asp

Som sagt, det borde kunna lösa ditt problem. Btw, hur såg SQLen ut som inte funkade? Kanske bara är ett idiotfel du gjort?
Citera
2012-01-16, 20:59
  #5
Medlem
gadzooxs avatar
Citat:
Ursprungligen postat av Voldemort2
Jag har bara provat group by och då blev det fel. Har inte stött på having. Vad gör det?
Funkar som WHERE, men används tillsammans med GROUP BY eftersom aggregate-funktioner inte funkar i WHERE-satser.
Citera
2012-01-16, 21:03
  #6
Medlem
Voldemort2s avatar
Citat:
Ursprungligen postat av Proton

Som sagt, det borde kunna lösa ditt problem. Btw, hur såg SQLen ut som inte funkade? Kanske bara är ett idiotfel du gjort?

select efternamn, branch, max(arvode) from emp group by efternamn, branch;
Citera
2012-01-16, 21:06
  #7
Moderator
Protons avatar
Citat:
Ursprungligen postat av Voldemort2
select efternamn, branch, max(arvode) from emp group by efternamn, branch;
Funkar den bättre om du tar ur efternamnet ur frågan?
Citera
2012-01-16, 21:08
  #8
Medlem
Voldemort2s avatar
Ja. Då blir det helt ok, men inte med. Underligt att det är så.
Citera
2012-01-16, 21:20
  #9
Moderator
Protons avatar
Citat:
Ursprungligen postat av Voldemort2
Ja. Då blir det helt ok, men inte med. Underligt att det är så.
Nja, det kan ju finnas fler svensson, right? Då blir det ju knasigt.

Finns det inget id i den där tabellen, nån form av primärnyckel? Efternamnet är nämligen inte en speciellt bra sådan.
Citera
2012-01-16, 21:22
  #10
Medlem
Voldemort2s avatar
Primärnyckeln här är empno, det vill säga anställningsnummer.
Citera
2012-01-16, 21:30
  #11
Moderator
Protons avatar
Citat:
Ursprungligen postat av Voldemort2
Primärnyckeln här är empno, det vill säga anställningsnummer.
OK, vad sägs om den här då?

Kod:
SELECT tmp.efternamn,branchMAX(arvodeFROM emp 
INNER JOIN
(SELECT empno,efternamn FROM emptmp ON emp.empno tmp.empno 
Finns säkert ett snyggare sätt att lösa det på, kommer inte på det nu bara
Citera
2012-01-16, 21:38
  #12
Medlem
Voldemort2s avatar
Den säger not a single group-group function.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback