webForumDet fria alternativet

Invalid use of group function :/

4 svar · 359 visningar · startad av joxxe

joxxeMedlem sedan okt. 200357 inlägg
#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

LarsGMedlem 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

joxxeMedlem 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

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

joxxeMedlem sedan okt. 200357 inlägg
#5

har löst alltihoppa nu!

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