Just nu i M3-nätverket
Gå till innehåll

Få ut mer från SQL-sats


amenhallålixom

Rekommendera Poster

amenhallålixom

Hej!

 

Jag har en SQL-sats som kraftigt förenklat ser ut så här:

 

Två kolumner: id, value

 

SELECT MAX(tabell.value) AS maxvarde

 

Det jag vill göra är att när jag lagt ut maxvarde så vill jag även veta id:t på den posten. Eftersom jag använder MAX-funktionen kan jag inte bara lägga till "id" i SELECT satsen, då får man ett fel.

 

Nåt tips?

 

Länk till kommentar
Dela på andra webbplatser

Jimmie Pettersson

SELECT value, ID FROM tabellen WHERE tabell.value = MAX(tabell.value)

Kanske funkar? vet inte, gissar lite här...Men det skadar inte att prova...

 

/Jimmie

 

 

Länk till kommentar
Dela på andra webbplatser

Du får lægga till GROUP BY i din sql sats før att det skall fungera..

 

SELECT ID, MAX(value)
FROM tabell
GROUP BY ID

 

Nu tror jag nog att du kommer få alla ID samt MAX værder før value i en lång lista så du får lægga på en HAVING i slutet

 

SELECT ID, MAX(value)
FROM tabell
GROUP BY ID
HAVING value = MAX(value)

 

Ær dock inte sæker på det sista så testa først med ex 1.

 

 

- Magnus

-----------------------------------------------------

Jag är inte kaxig, jag är bara så jävla bäst...

 

Länk till kommentar
Dela på andra webbplatser

amenhallålixom

Magnus,

 

Tack för ditt svar (och givetvis alla andra)

 

Har testat din version (utan HAVING) och fått korrekta resultat när jag loopar genom recordset:et. Det är ju bra i det fallet.

 

Hur gör jag så här då:

 

I min databas har jag en stor mängd data som jag vill köra SUM, MAX, MIN etc. på. Sen vill jag bara lägga ut dessa värden i en tabell utan att loopa (de ska bara visas i klump). För MAX värdet vill jag även skapa en hyperlänk och ha ID:t för den aktuella posten.

 

När jag provar med GROUP BY så väljer den bara den första posten i databasen, antagligen eftersom jag inte loopar.

 

Hmm..

 

Några tips?

 

Tack på förhand,

 

Mvh Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Detta borde lösa hela problemet.

 

SELECT TOP 1 ID,Value as MaxValue,(SELECT MIN(Value) FROM tabell) as minValue,(SELECT SUM(Value) FROM tabell) as sumValue  FROM tabell ORDER BY Value Desc

 

Ursprungsfrågan skulle jag löst med:

SELECT TOP 1 ID,Value FROM tabell ORDER BY Value DESC

 

--

Snäll ibland. rättvis nästan jämt. Elak för det mesta.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...