Newsgroup: it.comp.appl.access
Titolo: Una query di raggruppamento e una Dsum

Ciao a tutti,
Ho la seguente tabella di dettaglio :
Nr.Scheda Operazione Importo Assoc. a ft nr.
1 AAA 10 57/2004
1 BBB 25 57/2004
1 CCC 10
3 AAA 15 58/2004
i dati li vedo in maschera continua (da una query di raggruppamento) in
questo modo :
Nr.Scheda Cliente Tot.Importo
1 pippo 45
3 pluto 15
Ora vorrei fare una colonna con importo fatturato in modo che venga :
Nr.Scheda Cliente Tot.Importo Tot.Imp.Ft.
1 pippo 45 35
3 pluto 15 15
praticamente l'importo fatturato è sempre quello della tabella dettaglio
scheda ma dove ho un numero fattura.
Ho provato con Dsum dalla query di raggruppamento ma su ogni riga mi riporta
il totale importo fatturato (in questo caso 50)
Si può fare con la Dsum a livello di query di raggruppamento ??? Mi fate un
esempio ?
Grazie mille e buon week.
Ronny
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:194Z130Z244Z250Y...@usenet.libero.it...

Si, si può usando la funzione DSum: posta il codice SQL della tua query di
raggruppamento e poi vedremo come modificarlo per ottenere ciò che vuoi
usando una funzione DSum.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:194Z130Z244Z250Y...@usenet.libero.it...

Ti riporto l'SQL della query che devi scrivere ovviamente ristretto ai campi
Nr. scheda e totale importo fattur (premettendo che il campo importo fattura
abbia tipo dati =numerico o valuta)
SELECT Tua_Tabella.Nr.Scheda, Sum(Tua_Tabella.Importo) AS Somma di tutti gli
importi
FROM Tua_Tabella
GROUP BY Tua_Tabella.Nr.Scheda;
Ciao e fammi sapere

 usando una funzione DSum.
Ciao Roberto ed innanzitutto grazie per la dispo, eccoti l'Sql della query :
SELECT an_clienti.ID, Sch_testa.nr_scheda, Sch_testa.dt_scheda,
Sch_testa.anno_scheda, Sch_testa.cliente, an_clienti.cognome,
an_clienti.nome, an_clienti.indirizzo_ft, an_clienti.località_ft,
an_clienti.provincia_ft, an_clienti.cap_ft, an_clienti.fiscale,
an_clienti.anamnesi, an_clienti.note1, an_clienti.note2, an_clienti.note3,
Sch_testa.nr_preventivo, Sch_testa.anno_preventivo, Sch_testa.dt_preventivo,
Sum(Sch_detta.importo) AS TotValore, First(Sch_testa.stato) AS PrimoDistato
FROM (an_clienti INNER JOIN Sch_testa ON an_clienti.codice_ft =
Sch_testa.cliente) INNER JOIN Sch_detta ON (Sch_testa.anno_scheda =
Sch_detta.anno_scheda) AND (Sch_testa.nr_scheda = Sch_detta.nr_scheda) AND
(Sch_testa.cliente = Sch_detta.cliente)
GROUP BY an_clienti.ID, Sch_testa.nr_scheda, Sch_testa.dt_scheda,
Sch_testa.anno_scheda, Sch_testa.cliente, an_clienti.cognome,
an_clienti.nome, an_clienti.indirizzo_ft, an_clienti.località_ft,
an_clienti.provincia_ft, an_clienti.cap_ft, an_clienti.fiscale,
an_clienti.anamnesi, an_clienti.note1, an_clienti.note2, an_clienti.note3,
Sch_testa.nr_preventivo, Sch_testa.anno_preventivo, Sch_testa.dt_preventivo;
Grazie mille


 ha scritto nel messaggio
news:194Z130Z244Z250...@usenet.libero.it...

Ci sarebbe molto da discutere sul modo che hai usato per creare la query di
raggruppamento di cui sopra (mi restano poco comprensibili, ad esempio,
tutti quei campi di raggruppamento); per non perdere molto tempo ti rispondo
facendo riferimento a come hai posto il problema nel tuo primo messaggio.
Se i tuoi dati sono contenuti in una tabella chiamata Tabella1 che ha una
struttura simile a questa:
ID                 Contatore e chiave primaria
NrScheda      Testo
Operazione    Testo
Cliente           Testo
Importo         Valuta
FtNr              Testo
Ciò che ti serve dovresti ottenerlo con una query di raggruppamento che
abbia il seguente codice SQL:
SELECT Tabella1.NrScheda, First(Tabella1.Cliente) AS Cliente,
Sum(Tabella1.Importo) AS TotImporto, CCur(DSum("Importo","Tabella1","Not
IsNull(FtNr) And NrScheda ='" & [NrScheda] & "'")) AS TotImpFt
FROM Tabella1
GROUP BY Tabella1.NrScheda;
Se invece il campo NrScheda fosse di tipo Numerico prova con:
SELECT Tabella1.NrScheda, First(Tabella1.Cliente) AS Cliente,
Sum(Tabella1.Importo) AS TotImporto, CCur(DSum("Importo","Tabella1","Not
IsNull(FtNr) And NrScheda =" & [NrScheda])) AS TotImpFt
FROM Tabella1
GROUP BY Tabella1.NrScheda;
