Forum: Italian Ruby user group QUERY CON SQLITE3

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Wladjmir W. (Guest)
on 2009-03-06 13:10
Ciao a tutti,

chissa se qualuno sa dirmi come ottenere contemporaneamente dati da due
diverse tabelle correlate, mi spiego semplificando:

SELECT A.nome B.sum(n), C.sum(n) from A,B,C where A.id=B.id AND
A.bid=C.bid

la query mi da risultati errati.
Grazie per ogni aiuto o riferimento.
Alessandro S. (Guest)
on 2009-03-06 14:07
Wladjmir W. wrote:
> Ciao a tutti,
>
> chissa se qualuno sa dirmi come ottenere contemporaneamente dati da due
> diverse tabelle correlate, mi spiego semplificando:
>
> SELECT A.nome B.sum(n), C.sum(n) from A,B,C where A.id=B.id AND
> A.bid=C.bid
>
> la query mi da risultati errati.
> Grazie per ogni aiuto o riferimento.

non puoi fare select di sum insieme ad altri valori

devi fare una query di questo tipo

SELECT A.nome, tabB.totalb, tabC.totalc FROM A LEFT JOIN
(select sum(n) AS totalb FROM B GROUP BY id) AS tabB ON A.id = tabB.id
LEFT JOIN (select sum(n) AS totalc FROM C GROUP BY bid) AS tabC ON A.bid
= tabC.bid

Direi... però potrei essere ubriaco :P è tanto che non scrivo sql a mano
:)
Wladjmir W. (Guest)
on 2009-03-06 14:57
Grazie, ho risolto, lo posto perché (per me) è una soluzione
interessante:

dati aggegati da join multiple

SELECT table1.name ,A.amount, B.amount FROM table1,
(SELECT foreign_id A_id, sum(n) amount FROM table2 GROUP BY foreign_id)
A,
(SELECT foreign_id B_id, sum(n) amount FROM table3 GROUP BY foreign_id)
B
WHERE
table1.id1=A_id AND table1.id2=B_id
GROUP BY
table1.name;

dove per esempio la table1 sono fornitori, la table2 sono le fatture e
la table3 sono i pagamenti
Ciao.
Alessandro S. (Guest)
on 2009-03-06 17:25
Wladjmir W. wrote:
> Grazie, ho risolto, lo posto perché (per me) è una soluzione
> interessante:
>
> dati aggegati da join multiple
>
> SELECT table1.name ,A.amount, B.amount FROM table1,
> (SELECT foreign_id A_id, sum(n) amount FROM table2 GROUP BY foreign_id)
> A,
> (SELECT foreign_id B_id, sum(n) amount FROM table3 GROUP BY foreign_id)
> B
> WHERE
> table1.id1=A_id AND table1.id2=B_id
> GROUP BY
> table1.name;
>
> dove per esempio la table1 sono fornitori, la table2 sono le fatture e
> la table3 sono i pagamenti
> Ciao.

bhe è = a quello che ho postato io :) vuol dire che un pò di sql lo
ricordo ancora :)
Wladjmir W. (Guest)
on 2009-03-06 21:54
infatti, grazie dell'aiuto, io conosco solo un pò di SQL elementare
Ciao
This topic is locked and can not be replied to.