Just nu i M3-nätverket
Jump to content

Få ut mer från SQL-sats


amenhallålixom

Recommended Posts

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?

 

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

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...

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...