Topic: Grupavimas iškaido rezultaltatus, be jo klaida

Sveiki, reikia pagalbos del vieno reikalo susijusio su grupavimu.

SELECT
pas_code,
pas_profile,
count(sutp_id),
sum(sutp_price),
(sutp_price_proc * count(sutp_id) * pbk_price / 100) x

FROM
[...tables and inner joins...]

WHERE
lelele

GROUP BY
pas_code,
pas_profile,
sutp_price_proc,
pbk_price

Problema tame, kad rezultatai išskaidomi taip:

pas_code    pas_profile   sutp_id  sutp_price x
2664        good stuff    3        100        69        < nes pbk_price yra tarkim 67 
2664        good stuff    3        100        71        < because pbk_price yra tarkim 50

O reikia vsiką gauti vienoje eilutėje susumuotą:

pas_code    pas_profile   sutp_id  sutp_price x
2664        good stuff    6        200        140

Išmetus sutp_price_proc ir pbk_price iš grupavimo dalies gaunu klaidą, kad jie privalo būti grupavime. Kaip išsisukti iš padėties?

Re: Grupavimas iškaido rezultaltatus, be jo klaida

tomukaz wrote:

Išmetus sutp_price_proc ir pbk_price iš grupavimo dalies gaunu klaidą, kad jie privalo būti grupavime. Kaip išsisukti iš padėties?

Tau klaidą rodo su tais stulpeliais, nes tu grupėje, kur daug reikšmių, MySQL'ui liepi skaičiuoti kaip vieną reikšmę: (sutp_price_proc * count(sutp_id) * pbk_price / 100) x

Iš kur jam žinoti, kurias reikšmes iš grupės jam imti?

Pradžiai siūlau pasirašyti užklausą, su kuria gauni tinkamus duomenis, o paskui ją panaudoti kaip subužklausą ir tada atlikti aukštesnio lygio grupavimą.