[ mysqlNuts @ 19.01.2006. 09:11 ] @
tbl_aktivnost: id_aktivnosti,naziv_aktivnosti,planirana_sredstva
tbl_projekti: id_projekta,id_aktivnosti,odobrena_sredstva
tbl_placanja: id_placanja, id_projekta,uplata

Treba da izvrsim upit nad ove tri tabele kako bih dobio sledeci rezultat

naziv_aktivnosti | planirana_sredstva | odobreno | uplaceno


gde je :
odobreno - suma odobrenih sredstava za datu aktivnost
uplaceno - suma uplacenih sredstava na svim projektima koji pripadaju datoj kategoriji aktivnosti.

Koristio sam 2 join-a i guop by naziv_aktivnosti ali nikako da mi sabere sve sto hocu. Kad mi sumira odobreno onda nece uplate i obrnuto.
HELP!!!
[ jablan @ 19.01.2006. 09:29 ] @
Neće moći tek tako 2 joina + group by, jer će ti se odobreno sumirati više puta, za svako plaćanje. Najjednostavnije rešenje je sa podupitima. Da li ti verzija podržava podupite?
[ mysqlNuts @ 19.01.2006. 09:40 ] @
MYSQL 3.23
[ mysqlNuts @ 19.01.2006. 09:43 ] @
Prvi deo radi ovako
Code:

SELECT 

  AKTIVNOST.NAZIV_AKTIVNOSTI,
  AKTIVNOST.PLANIRANA_GODISNJA_SREDSTVA,
  AKTIVNOST.KVARTALNA_SREDSTVA,
  sum(PROJEKAT.ODOBRENA_SREDSTVA)


FROM
 PROJEKAT INNER JOIN
 AKTIVNOST ON PROJEKAT.`ID_AKTIVNOSTI`=AKTIVNOST.`ID_AKTIVNOSTI`


GROUP BY

  AKTIVNOST.NAZIV_AKTIVNOSTI

ali sumiranje uplate neceeee
[ noviKorisnik @ 19.01.2006. 10:06 ] @
Naravno da neće kad su grupisani svi idovi projekata.

Nema podupita na matorom MySQL. Može onda s nekolicinom upita.

Neka prvi alteruje tabelu projekata kolonom suma uplata po projektu. Drugi upit onda bez problema odradi trazeno. Treći upit može da dropne privremenu kolonu.
[ jablan @ 19.01.2006. 10:26 ] @
Ili da uradi dva upita, jedan sa joinom samo na projekat (kao što je uradio u primeru), a drugi sa dva joina sa sumiranim uplatama, pa resultsetove spaja u kodu tamo gde mu treba...
[ mysqlNuts @ 19.01.2006. 10:28 ] @
Kako bi eventalno resenje bilo sa mysql 4.x ?
[ jablan @ 19.01.2006. 10:40 ] @
Code:

SELECT naziv_aktivnosti, planirana_sredstva,
(SELECT SUM(odobrena_sredstva) FROM tbl_projekti WHERE id_aktivnosti = a.id_aktivnosti) odobreno,
(SELECT SUM(uplata) FROM tbl_placanja
INNER JOIN tbl_projekti ON tbl_placanja.id_projekta = tbl_projekti.id_projekta
WHERE id_aktivnosti = a.id_aktivnosti) uplate
FROM tbl_aktivnost a
[ noviKorisnik @ 19.01.2006. 11:31 ] @
Napomena: to nije 4.x, nego tek od 4.1
[ mysqlNuts @ 19.01.2006. 11:34 ] @
HVALA, prebacio sam se na 4.1 i radi savrseno
[ mysqlNuts @ 19.01.2006. 12:23 ] @
Kako da iskoristim vrednosti koje su proizisle sumiranjem da mi poslednja kolona bude npr.
(odobreno-uplata)