webForumDet fria alternativet

SQL fråga med uträkning

Databaser & SQLur Databashanterare & SQL

6 svar · 698 visningar · startad av mollemus

Medlem sedan jan. 200833 inlägg
Frågan#1

Jag har en tabell med två kolumner som jag sedan vill sortera efter värdet som är lika med den ena kolumnen delat med den andra, är det möjligt?

som t.ex.

SELECT * FROM TABLE_NAME ORDER BY C1/C2

vilket inte funkar, men kanske det går att skriva det i någon annan form.

Medlem sedan juni 20006 032 inlägg
#2

Flyttas från PHP

Medlem sedan juni 20008 205 inlägg
#3

Man ska aldrig säga att något inte funkar. Man ska alltid säga HUR något inte funkar. Felmeddelande?

Medlem sedan jan. 200833 inlägg
#4

Hehe, mjo får inga felmeddelanden, får bara tomt, antar att jag inte ställt in så jag får felmeddelanden.

Medlem sedan apr. 2006409 inlägg
#5

Utan att veta vad du vill göra kan jag få föreslå sort() i stället? Ibland kan det vara idé att querya in raderna i arrayer och sedan massera fram det man vill ha. Php har många bra kärnfunktioner.

//Lägg kolumnerna i två arrayer
$c1[] = query_rad_c1[];  //du får koda själ. ;-)
$c2[] = query_rad_c2[];
//gå igenom arrayerna 
for ($i++ /*etc */){
$divided[$i] = c1[$i]/c2[$i];
}
sort($divided);
Medlem sedan juni 20008 205 inlägg
#6

Kan man utföra det i databasmotorn är det klart bättre att göra det där, och jag kan inte se någon anledning till varför det skulle strula med att sortera på ett uträknat fält - jag ser faktiskt ens någon anledning till varför frågan i OP inte skulle funka, så länge kolumnerna finns i tabellen. Men eftersom vi inte får se några felmeddelanden går det inte att säga vad det är som är fel...

Medlem sedan mars 20007 896 inlägg
#7
SELECT fld1, fld2, (fld3/fld4) AS divided 
FROM tbl 
ORDER BY divided

Men din huvudfråga bör ju fungera likväl. Se bara till att fälten C1 och C2 är av numerisk typ.

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