Mailinglisten-Archive |
Hallo Wolfgang, vielen dank fuer den hinweis. das habe ich schon vermutet, nur wie kann man am besten so erwas loesen ? etwa so (???): ## CREATE table_temp_1 (UNIQUE KEY (KUNDENNUMMER)) SELECT table_master.KUNDENNUMMER, (SUM(ABS(table_1.f07))/1000 AS summe_1_temp1 FROM table_master LEFT JOIN table_1 ON table_master.KUNDENNUMMER=table_1.f01 GROUP BY table_master.KUNDENNUMMER; CREATE table_temp_2 (UNIQUE KEY (KUNDENNUMMER)) SELECT table_master.KUNDENNUMMER, SUM(ABS(table_2.f05)))/1000 AS summe_1_temp2, SUM(ABS(table_2.f03))/1000 AS summe_2 FROM table_master LEFT JOIN table_2 ON table_master.KUNDENNUMMER=table_2.f00 GROUP BY table_master.KUNDENNUMMER; SELECT table_master.KUNDENNUMMER, (table_temp_1.summe_1_temp1+table_temp_2.summe_1_temp2) AS summe_1, table_temp_2.summe_2 FROM table_master INNER JOIN table_temp_1 ON table_master.KUNDENNUMMER=table_temp_1.KUNDENNUMMER INNER JOIN table_temp_2 ON table_master.KUNDENNUMMER=table_temp_2.KUNDENNUMMER GROUP BY table_master.KUNDENNUMMER; ### Wolfgang Hauck schrieb: > >Hallo Leute, > > >brauche dringend Rat. > > >Folgende Abfrage bringt oft bei den Summen (summe_1) > >das Doppelte, das Dreifache ja sogar manchmal das Vierfache dessen > >was eigentlich erwartet wird. > > >Woran kann dies liegen??? > >(etwas mit den Kaskadierten join's scheint falsch zu sein, oder???) > > >### > >SELECT table_master.KUNDENNUMMER, > >(SUM(ABS(table_1.f07))+SUM(ABS(table_2.f05)))/1000 AS summe_1, > >SUM(ABS(table_2.f03))/1000 AS summe_2 > > >FROM table_master > >LEFT JOIN table_1 > > ON table_master.KUNDENNUMMER=table_1.f01 > >LEFT JOIN table_2 > > ON table_master.KUNDENNUMMER=table_2.f00 > > >GROUP BY table_master.KUNDENNUMMER; > >### > > Hi Svetoslav, > > Du Joinst bei beiden Untertabellen auf die Mastertabelle, dadurch enstehen Kreuzverkettungen und die sind nicht erwünscht. > > Also > > ### > SELECT table_master.KUNDENNUMMER, > (SUM(ABS(table_1.f07))+SUM(ABS(table_2.f05)))/1000 AS summe_1, > SUM(ABS(table_2.f03))/1000 AS summe_2 > > FROM table_master > LEFT JOIN table_1 > ON table_master.KUNDENNUMMER=table_1.f01 > LEFT JOIN table_2 > ON table_1.f01=table_2.f00 > > GROUP BY table_master.KUNDENNUMMER; > ### > > So müsste es laufen ;-)) > > MFG Wolfgang > > -- > Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter > -->> http://www.4t2.com/mysql -- Dipl.-Ing. Svetoslav Koev Systementwicklung Inno Consult GmbH Comeniusstraße 109 01309 Dresden Telefon: +49 351 25796-13 Fax: +49 351 25796-24 http://www.inno-consult.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive