PDA

Visualizza la versione completa : [SQL] Calcolo del totale di più record


WillyLord
24-04-2007, 19:31
Ho un database con varie tabelle (che si chiamano sito1-2-3) con dentro un campo "counter" numerico dove dentro c'è un record solo.

Quindi:
counter.sito1
counter.sito2
counter.sito3

Vorrei fare una select che mi restituisca il totale di tutti counter.

Potete aiutarmi?

123delphi321
25-04-2007, 18:01
Ciao,
non sono sicuro di aver capito la tua domanda.... se posti la struttura delle tabelle forse capiro meglio.

comunque, penso, puoi risolvere cosi:

select
sito1.counter + sito2.counter + sito3.counter SommaCounter,
from sito1
left join sito2 on sito2.id=1
left join sito3 on sito3.id=1
where sito1.id=1

questo chiaramente funziona se nella struttura della tabella c'e' un field ID.

ciao

Caiodark
25-04-2007, 22:36
Nel caso non esista un campo ID devi tenere conto della cardinalità.

3 tabelle con un record ciascuna, su una select di tipo:

select sito1 counter, sito2.counter, sito3.counter from sito1, sito2, sito 3

Ti restituirà 3 record identici.

Potresti fare così:

select (sito1.counter + sito2.counter + sito3 counter) from sito1, sito2, sito 3

Otterresti 3 record identici con il valore che cerchi, oppure :

select (sum(sito1.counter + sito2.counter + sito3.counter)) / 3 from sito1, sito2, sito 3

Con questa otterresti un record solo con il valore che cerchi, il divisore è il numero di tabelle che metti dopo from. Sum non sono sicuro sia standard, io maneggio oracle e access e dovrebbe funzionare con entrambi.

WillyLord
25-04-2007, 23:45
Uso mysql e php, e la somma mi server per fare il totale dei contatori visite di più siti con la stessa struttura.
Credo che Sum vadi bene. Siete gia stati di grande aiuto.

Proverò...

Se ho difficoltà, vi riscrivo. :)

Ciao.

Loading