Nach Upgrade 4.1 > 5.0: Problem mit Subqueries

Nach Upgrade 4.1 > 5.0: Problem mit Subqueries

am 27.04.2007 15:46:33 von Sebastian Suchanek

Hallo NG!

Seit ich vor Kurzem meine MySQL-Version von 4.1 auf 5.0
aktualisiert habe, habe ich ein Problemchen, dem ich nicht so
recht beikomme.

Folgende Abfrage auf eine Tabelle liefert absolute Nonsens-Werte
(fünfstellige Werte für 'quota'[1]):

SELECT COUNT(f_ID) AS sells,
COUNT(f_ID)/(SELECT COUNT(f_ID)
FROM finished
WHERE f_VK = f.f_VK
)*100 AS quota,
FROM finished f
WHERE f_VK IS NOT NULL
AND f_Anzahl > 0
GROUP BY f_VK
ORDER BY sells DESC LIMIT 20

Noch kurioser dabei ist, daß die Subquery für sich alleine
genommen korrekte Werte liefert. D.h., bei dieser Abfrage

SELECT COUNT(f_ID) AS sells,
COUNT(f_ID)/(SELECT COUNT(f_ID)
FROM finished
WHERE f_VK = f.f_VK
)*100 AS quota,
(SELECT COUNT(f_ID)
FROM finished
WHERE f_VK = f.f_VK
) AS subresult
FROM finished f
WHERE f_VK IS NOT NULL
AND f_Anzahl > 0
GROUP BY f_VK
ORDER BY sells DESC LIMIT 20

enthält 'subresult' - wie auch 'sells' - die richtigen Werte.
Nur die Berechnung der eigentlichen Verkaufsquote schlägt fehl.
Eine ganze Reihe ähnlich Abfragen, die auch Anteile in Prozent
berechnen, funktionieren aber nach wie vor auch einwandfrei.


Tschüs,

Sebastian

_____
Anmerkungen:
[1] BTW: Ich kann die Zahlenwerte auch nicht durch "kreative
Zahlenakrobatik" rekonstruieren, d.h. ich kann den Fehler
nicht darauf einkreisen, daß MySQL z.B. ein "GROUP BY"
versemmeln würde o.ä.

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de

Re: Nach Upgrade 4.1 > 5.0: Problem mit Subqueries

am 27.04.2007 18:59:32 von Werner Bauer

Sebastian Suchanek schrieb:
> Seit ich vor Kurzem meine MySQL-Version von 4.1 auf 5.0=20
> aktualisiert habe, habe ich ein Problemchen, dem ich nicht so=20
> recht beikomme.

Ich hatte auch welche, hauptsächlich bei irgendwie unsauber formulierte=
n=20
joins, wo ich die where-clause ins join geschrieben hatte etwa wie
..
join a on a.id=3Dx.id and a.z=3D27

vielleicht probierst du mal klarer zu sagen, aus welcher tabelle f_VK zu =

nehemen wär'

Werner

Re: Nach Upgrade 4.1 > 5.0: Problem mit Subqueries

am 27.04.2007 19:20:57 von Sebastian Suchanek

Thus spoke werner bauer:
> Sebastian Suchanek schrieb:
>> Seit ich vor Kurzem meine MySQL-Version von 4.1 auf 5.0
>> aktualisiert habe, habe ich ein Problemchen, dem ich nicht
>> so recht beikomme.
>
> Ich hatte auch welche, hauptsächlich bei irgendwie unsauber
> formulierten joins, wo ich die where-clause ins join
> geschrieben hatte etwa wie ...
> join a on a.id=x.id and a.z=27

Joins kommen in der fraglichen Abfrage nicht vor.

> vielleicht probierst du mal klarer zu sagen, aus welcher
> tabelle f_VK zu nehemen wär'

Aus 'finished' - wie die restliche Abfrage auch.


Tschüs,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de