# Query con sqlite3

**URL:** <https://www.ruby-forum.com/t/query-con-sqlite3/162168>\
**Category:** IT\
**Created:** [March 6, 2009, 12:10pm UTC](https://www.ruby-forum.com/t/query-con-sqlite3/162168 "2009-03-06T12:10:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wladjmir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/57b2e6/32.png) [@wladjmir](https://www.ruby-forum.com/u/wladjmir)\
**Post date:** [March 6, 2009, 12:10pm UTC](https://www.ruby-forum.com/t/query-con-sqlite3/162168/1 "2009-03-06T12:10:09Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![wladjmir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/57b2e6/32.png) [@wladjmir](https://www.ruby-forum.com/u/wladjmir)\
**Post date:** [March 6, 2009, 1:07pm UTC](https://www.ruby-forum.com/t/query-con-sqlite3/162168/2 "2009-03-06T13:07:55Z")

</div>

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 😛 Ã¨ tanto che non scrivo sql a mano  
🙂

---

<div class="post-metadata">

**Author:** ![wladjmir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/57b2e6/32.png) [@wladjmir](https://www.ruby-forum.com/u/wladjmir)\
**Post date:** [March 6, 2009, 1:57pm UTC](https://www.ruby-forum.com/t/query-con-sqlite3/162168/3 "2009-03-06T13:57:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![wladjmir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/57b2e6/32.png) [@wladjmir](https://www.ruby-forum.com/u/wladjmir)\
**Post date:** [March 6, 2009, 4:25pm UTC](https://www.ruby-forum.com/t/query-con-sqlite3/162168/4 "2009-03-06T16:25:35Z")

</div>

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 🙂

---

<div class="post-metadata">

**Author:** ![wladjmir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/57b2e6/32.png) [@wladjmir](https://www.ruby-forum.com/u/wladjmir)\
**Post date:** [March 6, 2009, 8:54pm UTC](https://www.ruby-forum.com/t/query-con-sqlite3/162168/5 "2009-03-06T20:54:14Z")

</div>

infatti, grazie dell’aiuto, io conosco solo un pÃ² di SQL elementare  
Ciao
