webForumDet fria alternativet

Wheresatsproblem

4 svar · 222 visningar · startad av cyprys

cyprysMedlem sedan dec. 20003 563 inlägg
#1

Min SQL-sats som den funkar

SELECT t1.name, 
count(t2.id) as antal, 
(SELECT count(t3.id) FROM tabell3 as t3) AS Totalt,
Int(Antal/Totalt) As Procent
FROm tabell1 as t1, tabell2 as t2
WHERE t2.id = t1.otherID
[b]AND Procent > 50[/b]
GROUP BY 1

Det som inte funkar är när ett värde som jag skapat skall vara högre än ett speciellt värde.
Om jag istället skriver kolumnnummer AND 4 > 50 så blir det istället två numeriska tal såsom det ser ut i matematiken.

Felmeddelandet lyder "Det har inte angetts något värde för en eller flera nödvändiga parametrar." och uppstår när jag skriver in den feta texten/villkoret.

Hur skall man kunna kontrollera ett skapat värde såsom "Procent" i en WHERE-sats?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Du kan skriva hela uttrycket igen. Det går inte att använda korrelationsnamnet.

cyprysMedlem sedan dec. 20003 563 inlägg
#3

Nope, då kommer meddelandet "Mängdfunktion inte tillåten i WHERE-instruktionen".
Har exprimenterat lite med [] men får inget vettigt ur det.

Men eftersom värderna finns i resultatet borde man inte kunna använda skapade kolumnnamn på detta sätt i where-satser?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Använd having eftersom det är en aggregatfunktion med.

cyprysMedlem sedan dec. 20003 563 inlägg
#5

Fungerar kanon! :e
Tackar

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