webForumDet fria alternativet

SUM i order fungerar inte

Databaser & SQLur Databashanterare & SQL

1 svar · 209 visningar · startad av Asterix

Medlem sedan dec. 1999483 inlägg
Frågan#1

Uttrycket under fungerar inte och vad jag har förstått så är det pga SUM efter order by. Finns det något annat sätt att göra det jag vill. Hoppas att ni fattar enbart med hjälp av Select satsen annars får ni säga till. Här kommer satsen:
SELECT spel.id, spel.name, spel.konsol, spel.price, spel.release, spel.genre, spel.rea from spel LEFT JOIN p_order ON p_order.prod_id = spel.id GROUP BY spel.id WHERE spel.konsol = '$_konsol' and spel.genre != '10' ORDER BY SUM(p_order.antal) DESC LIMIT 20

------------------
/Emil Hesslow

Medlem sedan dec. 200012 464 inlägg
#2

Din group by, som du har smugit in där på fel plats, ställer nog också till det. Jag skulle nog skriva något så här istället

SELECT sum(case when p_order.antal is null then 0 else p_order.antal end) as antal ,
spel.id, spel.name, spel.konsol, spel.price, spel.release, spel.genre, spel.rea
  from spel LEFT JOIN p_order ON p_order.prod_id = spel.id 
WHERE spel.konsol = '$_konsol' and spel.genre <> '10' 
GROUP BY spel.id,spel.name, spel.konsol, spel.price, spel.release, spel.genre, spel.rea  
ORDER BY 1

------------------
essentitia preter non sans multiplicandum

254 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
125 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)