Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2009-05-27, 19:30
  #1
Medlem
Suttit här i ett par timmar för att lyckas med en SQL-fråga men det går inte.

Tabellen ser ut såhär(Tabell1)
ID | Namn | Antal
1 -| Erik --| 4
2 -| Erik --| 2
3 -| Erik --| 8
4 -| Olof --| 1
5 -| Olof --| 6

Jag vill ta fram största värdetAntal för ett visst Namn och på något sätt behålla ID.

SELECT Namn, SUM(Antal)
FROM Tabell1
GROUP BY Namn


Den satsen ger resultatet:
Namn | Antal
Erik --| 8
Olof --| 6

Jag vill att resultatet ska bli:
ID | Namn | Antal
3 -| Erik --| 8
4 -| Olof --| 6

SELECT Namn, ID, SUM(Antal)
FROM Tabell1
GROUP BY Namn, ID

FUNGERAR INTE
Citera
2009-05-27, 21:19
  #2
Medlem
DownInIts avatar
Vilken databas använder du?
Citera
2009-05-27, 21:23
  #3
Medlem
PerFnurts avatar
Antar att
Citat:
Jag vill att resultatet ska bli:
ID | Namn | Antal
3 -| Erik --| 8
4 -| Olof --| 6

Egentligen är
Jag vill att resultatet ska bli:
ID | Namn | Antal
3 -| Erik --| 8
5 -| Olof --| 6

och att du är ute efter att använda MAX(Antal) snarare än SUM(Antal).

Ska fundera vidare på lösning, för just nu kan jag inte se hur man kan göra det med 1 query (mysql).
Citera
2009-05-27, 21:24
  #4
Medlem
PerFnurts avatar
/Raderad - dubbelpost
Citera
2009-05-27, 21:31
  #5
Medlem
Är det detta du är ute efter?

SELECT Namn, ID, MAX(antal) FROM tabell1 WHERE id ="önskat id"
Citera
2009-05-27, 21:34
  #6
Medlem
PerFnurts avatar
Tror svaret är

Kod:
SELECT * FROM Tabell1 t1
WHERE Antal=(SELECT MAX(Antal) 
             FROM Tabell1 t2 
             WHERE t1.Namn = t2.Namn) 
GROUP BY Namn

(mysql)

Fast det är kanske "fusk" med två select?
Citera
2009-05-27, 21:41
  #7
Medlem
Jag använder ACCESS.

Och det ska såklart vara MAX inte SUM, skrev fel.

Att göra två frågor kanske går? hur går det till?
Citera
2009-05-27, 21:50
  #8
Medlem
Citat:
Ursprungligen postat av PerFnurt
Tror svaret är

Kod:
SELECT * FROM Tabell1 t1
WHERE Antal=(SELECT MAX(Antal) 
             FROM Tabell1 t2 
             WHERE t1.Namn = t2.Namn) 
GROUP BY Namn

(mysql)

Fast det är kanske "fusk" med två select?

Verkar inte fungera i access
Citera
2009-05-27, 21:52
  #9
Medlem
Citat:
Ursprungligen postat av temujin
Är det detta du är ute efter?

SELECT Namn, ID, MAX(antal) FROM tabell1 WHERE id ="önskat id"

Inte riktigt, saknar GRUPPERING på namnet och lite så
Citera
2009-05-27, 21:52
  #10
Medlem
PerFnurts avatar
Citat:
Ursprungligen postat av sockergubben
Verkar inte fungera i access

Trist. Funkar utmärkt i mysql.

Kanska dags att byta upp dig till riktiga grejjer?
Citera
2009-05-27, 22:10
  #11
Medlem
Citat:
Ursprungligen postat av PerFnurt
Trist. Funkar utmärkt i mysql.

Kanska dags att byta upp dig till riktiga grejjer?

Can't group by (*) säger den
Citera
2009-05-27, 22:30
  #12
Medlem
WOHO! det fungerar, tog bort GroupBy-klausulen bara
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