Newsgroup: it.comp.lang.delphi
Titolo: Domanda SQL

Non so come fare la select che descrivo qui di seguito.
Ho due files:
1-Contiene un elenco di categorie di budget e la cui struttura semplificata 
è: ID, Nome, Valore budget annuo
2-Contiene le scritture contabili e tra i suoi dati ha anche: ID(categoria 
di budget), Importo della transazione
 
Voglio ottenere come risultato un elenco di tutte le categorie di budget 
(ID), con il loro nome, il loro budget annuale, ma
anche il totale effettivo risultante dalle transazioni contabilizzate, con 
la seguente struttura:
 
ID, Nome, Budget, Somma degli importi delle transazioni per questo ID
 
Purtroppo uso l'sql locale che viene con il BDE/dBase, ma credo che si possa 
fare, solo che oggi proprio non mi viene..
Sono in cerca di un 'aiutino'. 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

 Sono in cerca di un 'aiutino'. 
 
Diciamo che l'argomento e' un po' off-topic ma visto che il gruppo
langue un po'... :-)
 
E' un bel po che non uso SQL del BDE, ma secondo me una cosa
del genere potrebbe fare al caso tuo:
 
--
select 
categoria.id
, categoria.nome, categoria.budget, 
sum(scrittura.importo) as totale
from categoria 
inner join scrittura on 
categoria.id
 = scrittura.categoria_id
group by id, nome, budget
--
 
ciao
Giacomo
 
 

"Giacomo Degli Esposti"  ha scritto nel messaggio 
news:6f4b0676-3a14-4692...@googlegroups.com...
Diciamo che l'argomento e' un po' off-topic ma visto che il gruppo
langue un po'... :-)
E' un bel po che non uso SQL del BDE, ma secondo me una cosa
del genere potrebbe fare al caso tuo:
--
select
categoria.id
, categoria.nome, categoria.budget,
sum(scrittura.importo) as totale
from categoria
inner join scrittura on 
categoria.id
 = scrittura.categoria_id
group by id, nome, budget
--
ciao
Giacomo
 
Grazie, ci provo subito poi ti faccio sapere..


Funziona perfettamente ! Grazie.
(Io avevo tentato qualcosa di simile, ma mettevo erroneamente entrambi i 
files nel from... e non solo) 


 group by id, nome, budget
 
Dev'essere una left join, altrimenti non otterrai i valori 0 per le categorie che non hanno scritture associate.
 

"4ndre4"  ha scritto nel messaggio 
news:15166e2d-d114-464f...@googlegroups.com...
Dev'essere una left join, altrimenti non otterrai i valori 0 per le 
categorie che non hanno scritture associate.
 
Ho provato, ma stranamente da un numero di record strano e mi pare di aver 
capito che è la condizione dell'anno che fallisce (lo vedo dal fatto che 
trovo per esempio un ID categoria con un nome differente che avevo in un 
anno passato)
 
select
categoria.id
, categoria.nome, categoria.budget,
sum(scrittura.importo) as totale
from categoria
left join scrittura on 
categoria.id
 = scrittura.categoria_id
and categoria.anno='2016' and scrittura.aa='2016'
group by 
categoria.id
, categoria.nome, categoria.budget


 group by 
categoria.id
, categoria.nome, categoria.budget
 
Dovrebbe essere cosě:
 
SELECT
categoria.id
, categoria.nome, categoria.budget,
sum(scrittura.importo) as totale
FROM categoria
LEFT JOIN scrittura on 
categoria.id
 = scrittura.categoria_id AND scrittura.aa 
= categoria.anno
WHERE categoria.anno='2016'
GROUP BY 
categoria.id
, categoria.nome, categoria.budget
 
David
 
 

Dovrebbe essere cosě:
SELECT
categoria.id
, categoria.nome, categoria.budget,
sum(scrittura.importo) as totale
FROM categoria
LEFT JOIN scrittura on 
categoria.id
 = scrittura.categoria_id AND 
scrittura.aa
= categoria.anno
WHERE categoria.anno='2016'
GROUP BY 
categoria.id
, categoria.nome, categoria.budget
David
--
E č proprio cosě, bravo! Adesso č giusto, ho tutte le categorie, 
indipendentemente che abbiano delle scritture o meno. 
 
 
---
Questa e-mail č stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus