webForumDet fria alternativet
Logga in / Bli medlem

MAX(id)

Databaser & SQL

4 svar · 268 visningar · startad av NETwork

Medlem sedan juni 20011 732 inlägg
Frågan#1

Hej! Jag skulle vilja plocka ut det högsta värdet i mitt id-fält med en sql-sats och det fungerar ju bra med MAX(id). Men om jag vill göra det i en sql-sats som samtidigt hämtar andra poster från andra kolumner så blir det fel.

SELECT *, MAX(id) AS max_id FROM Tabell WHERE blah blah...

Jag antar att det beror på att maxid bara returnerar en rad samtidigt som jag här försöker hämta flera rader. Måste jag göra två separata sql-satser? Eller går det att få med maxid i samma sql-sats samtidigt som jag vill hämta en massa andra rader med data från databasen?

Medlem sedan dec. 200012 464 inlägg
#2

Det går att få fram i samma, om man vill.

  select (select max(id) from t ) maxid, c1,c2 from t1

Om du hämtar många poster så är det bättre att göra två frågor. En del dbms tillåter att du skickar flera statements i samma fråga

select c1,c2 from t1;select max(id) from t

och då får du två recordset. Ledtråd: set rs = rs.nextrecordset()

Medlem sedan juni 20011 732 inlägg
#3

Tackar! :)

Medlem sedan juni 20011 732 inlägg
#4

Problem, problem... nu har jag fastnat igen. Någon som ser felet i denna?

SELECT COUNT(ReviewID) AS Antal, ROUND((AVG(Overall)+0.01),0) AS O, Name, Platform, Type, Topic.GameID FROM Topic LEFT OUTER JOIN Review ON Topic.GameID = Review.GameID GROUP BY Name, Platform, Type, Topic.GameID WHERE Topic.Platform = 'Nintendo'

Får felmeddelandet "Syntax error (missing operator) in query expression 'Topic.GameID WHERE Topic.Platform = 'Nintendo''. "

Jag behöver alltså slänga på WHERE blah blah i min sql-sats. Utan WHERE så fungerar det...

Medlem sedan juni 20011 732 inlägg
#5

Ah, läste det själv... WHERE ska u vara innan GROUP BY! :)

265 ms totalt · 4 externa anrop · v20260731065814-full.0583408b
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)