webForumDet fria alternativet
Logga in / Bli medlem

Invalid use of group function :/

Databaser & SQL

4 svar · 361 visningar · startad av joxxe

Medlem sedan okt. 200357 inlägg
Trådstart#1

Får hela tiden upp, invalid use of group function.
Vad är egentligen fel med denna query?
select i.fi_id,i.fi_f_id,i.fi_rub,i.fi_a_id,i.fi_datum,i.fi_last,a.a_anv,a.a_id,count(s.fs_id) as numOfRec,s.fs_id, max(s.fs_id) as intSvar,max(s.fs_datum) from
forum_inlagg i left join anv a on i.fi_a_id = a.a_id
left join forum_svar s on s.fs_fi_id=i.fi_id where i.fi_f_id= " & Request.Querystring("fid")& "
group by i.fi_id,i.fi_f_id,i.fi_rub, i.fi_a_id,i.fi_datum,i.fi_last,a.a_anv,a.a_id,s.fs_id
order by i.fi_last asc, ifnull(max(s.fs_datum),i.fi_datum) desc limit " & (sida - 1) * 20 & ", " & 20

Medlem sedan dec. 200012 464 inlägg
#2
        s.fs_id, 
        max(s.fs_id) as intSvar,

Du kan inte ha både och på en kolumn.

Flyttas från Mysql

Medlem sedan okt. 200357 inlägg
#3

Nej jag får fortfarande ett felmess:
[MySQL][ODBC 3.51 Driver][mysqld-4.0.17-nt]Invalid use of group function

ok som sagt ligger ju felet nånstans med group by...

det fungerar ju om jag byter ut;
ifnull(max(s.fs_datum),i.fi_datum)
mot i.fi_datum så nått är skummt :S

Medlem sedan okt. 200357 inlägg
#4

har kommit fram till att man kan inte ha max i order by, så jag kör denna kod:
set rs = connect.execute("select i.fi_id,i.fi_f_id,i.fi_rub,i.fi_a_id,i.fi_datum,i.fi_last,a.a_anv,a.a_id,count(s.fs_id) as numOfRec,s.fs_id, max(s.fs_id) as intSvar,s.fs_datum from forum_inlagg i left join anv a on i.fi_a_id = a.a_id left join forum_svar s on s.fs_fi_id=i.fi_id where i.fi_f_id= " & Request.Querystring("fid")& " group by i.fi_id,i.fi_rub, i.fi_a_id, i.fi_datum,i.fi_last,a.a_anv,a.a_id,i.fi_f_id order by ifnull(s.fs_datum,i.fi_datum) desc limit " & (sida - 1) * 20 & ", " & 20)

men det verkar som ibland så tar den inte det senaste svaret ifrån en tråd...vad kan vara fel? skulle vilja haft max men de går ju inte :(

EDIT:
vet nu vad de är för fel, om det är flera svar så tar den datumet från det äldsta svaret, så ska de inte vara. den ska ta från de nyaste svaret. Hur gör jag det? kör ju desc...

Medlem sedan okt. 200357 inlägg
#5

har löst alltihoppa nu!

265 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)