webForumDet fria alternativet

You tried to execute a query that does not include the specified expression...

5 svar · 185 visningar · startad av mikul

mikulMedlem sedan aug. 20013 824 inlägg
#1

Jag får detta felmedelande

You tried to execute a query that does not include the specified expression 'id' as part of an aggregate function.

När jag kör denna SQL-Queryn:

[red]SELECT id, kategori, forum, beskrivning, moderator
FROM tblForums GROUP BY Kategori"[/red]

Nån som vet varför?

/ Mikul

mikulMedlem sedan aug. 20013 824 inlägg
#2

Löste det på ett annat sätt, men jag skulle fortfarande vilja veta källan till problemet...
Nån som vet?

/ Mikul

LarsGMedlem sedan dec. 200012 464 inlägg
#3

T:

a ! b
------
x ! 2
y ! 4
x ! 2
x ! 3

select a,b from t group by a,b

fungerar som distinct dvs, det tar bort alla duplikat, med resultatet

a ! b
------
x ! 2
y ! 4
x ! 3

select a from t group by a ger alltså

a
--
x
y

Med group by har man också möjligheten att aggregera inom varje grupp

select a,sum(b) from t group by a

ger

a !
-------
x ! 7
y ! 4

dvs, om du har group by så måste alla kolumner i select-listan antingen vara med i group by eller så måste de ingå i en aggregatfunktion (sum,max, min etc)

så om man säger

select a,b from t group by a

vad skulle det innebära? Vilket värde från kolumnen b skall returneras?

mikulMedlem sedan aug. 20013 824 inlägg
#4

Det skulle väll innebära att b inte kommer mä alls?
Eller har jag fattat det fel?

/ Mikul

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det jag försökte förmedla var att det är tvetydigt vilket resultat man skulle få. Om man grupperar på a så får man x och y men för x finns det olika b och databasen vet inte vilket av dessa b som skall returneras.

mikulMedlem sedan aug. 20013 824 inlägg
#6

Jahaaa...=)
Nu förstår jag lite bättre. Tack så mycket!=)

/ Mikul

133 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)