marcus: feld weg bei select statement...

Beitrag lesen

hi zusammen!
ich hab folgendes statement:

select c.imageid,
abs(255-c.r1) as r1,abs(255-c.g1) as g1,abs(255-c.b1) as b1,
abs(255-c.r2) as r2,abs(255-c.g2) as g2,abs(255-c.b2) as b2,
abs(255-c.r3) as r3,abs(255-c.g3) as g3,abs(255-c.b3) as b3,
abs(255-c.r4) as r4,abs(255-c.g4) as g4,abs(255-c.b4) as b4,
abs(255-c.r5) as r5,abs(255-c.g5) as g5,abs(255-c.b5) as b5,
abs(255-c.r6) as r6,abs(255-c.g6) as g6,abs(255-c.b6) as b6,
abs(255-c.r7) as r7,abs(255-c.g7) as g7,abs(255-c.b7) as b7,
abs(255-c.r8) as r8,abs(255-c.g8) as g8,abs(255-c.b8) as b8,
abs(255-c.r9) as r9,abs(255-c.g9) as g9,abs(255-c.b9) as b9,

(r1+g1+b1) as diff1,
(r2+g2+b2) as diff2,
(r3+g3+b3) as diff3,
(r4+g4+b4) as diff4,
(r5+g5+b5) as diff5,
(r6+g6+b6) as diff6,
(r7+g7+b7) as diff7,
(r8+g8+b8) as diff8,
(r9+g9+b9) as diff9,

(diff1+diff2+diff3+diff4+diff5+diff6+diff7+diff8+diff9) as diffsum

from colortunes c having

(diff1<200 and diff2<200 and diff3<200 and diff4<200 and diff5<200 and diff6<200 and diff7<200 and diff8<200 and diff9<200)

order by diffsum asc limit 100

folgende ausgangsbedingungen:
in einer tabelle (colortunes) stehen für 9 felder die jeweiligen rgb-farbwerte drin (r1,g1,b1,...). jetzt will ich von einem vergleichswert (hier rgb=255,255,255) die datensätze mit dem geringsten farblichen unterschied haben. also berechne ich für alle 9 felder (farben) die differenz zum vergleichswert (abs()...), berechne danach die gesamtdifferenz (diffsum) und sage ihm, dass keiner der 9 farbwerte eine größere abweichung zum gesuchten farbwert (255,255,255) der einzelnen farbtöne als 200 haben soll. und um die besten ähnlichsten ergebnisse zu bekommen, sortiere ich die gesamtabweichung aufsteigend (diffsum asc).
so, die berechnung der 9 differenzen klappt auch prima, die felder diff1-diff9 sind mit den erwarteten ergebnissen gefüllt aber die summe davon (diffsum) wird irgendwie nicht gefüllt :-(
irgendwie kann er mit den bezeichnern an der stelle wohl nichts mehr anfangen :-(

irgendeine idee, wie ich ihm das verklickern kann, dass er da mit den werten weiterrechnet oder wie ich das komplette statement sinnvoll umstellen kann damit es funktioniert?

server: mysql 4.1.10 (wechsel nicht möglich)

vielen dank im voraus!!!

gruß
marcus