Newsgroup: it.comp.appl.access
Titolo: Diavolo...mi servirebbe una soluzione x domani...

ciao amici... ho una query in un Db che mi mostra il totale dei
codici di esenzioni inseriti in una tabella Esenzioni e funziona
egregiamente....
però mi servirebbe che mi mostrasse anche i dati del campo N_Protocollo
riferiti x Comune di appartenenza.... contenuti in una tabella Anagrafe...
spiego con qualche esempio... forse è meglio.... intanto inserisco il codice
Sql della query...
------------------------
SELECT Esenzioni.Codice_Esenzione, Count(Esenzioni.Codice_Esenzione) AS
ConteggioDiCodice_Esenzione
FROM Esenzioni
GROUP BY Esenzioni.Codice_Esenzione;
UNION SELECT "TOTALE", Count (Esenzioni.Codice_Esenzione) AS
ConteggiodiCodice_Esenzione
FROM Esenzioni;
-------------------------------
siccome i Comuni  sono 5 .. e nel DB sono indicati con l'iniziale del comune
stesso come segue....345/2000/M3567
il primo numero è un progressivo / il secondo identifica l'anno in corso /
il terzo è il vero numero di protocollo preceduto dalla lettera iniziale del
Comune...
a me servirebbe una  query oppure anche un report che  mi indicasse il
totale generale (come funziona ora) ed in + indicasse il comune da
selezionare... se volessi solo i totali di M/F/P/G/I.... tipo inserire
iniziale comune *F* !!!
spero di essermi spiegato decentemente...
chiaramente ho provato a modificare la query esistente... ma inserendo il
campo protocollo mi da errore... la stessa cosa mi succede se tento con un
report...
grazie x l'aiuto...

 ha scritto nel messaggio
news:wnwE6.72824$s93.7...@news.infostrada.it...

Penso che devi darci qualche chiarimento:
1) Se come dici il campo N_Protocollo sta nella tabella Anagrafe e non nella
tabella Esenzioni, in base a quale campo queste due tabelle possono essere
messe in join?
2) La lunghezza di N_Protocollo è sempre di 14 caratteri? Insomma la lettera
che identifica il comune è sempre nella decima posizione?
3) Una volta selezionato il comune F, il "totale generale" è il totale delle
esenzioni di quel comune o deve essere comunque il totale delle esenzioni di
tutti e 5 i comuni?
4) Nella tabella Anagrafe non esiste un campo che identifichi il comune
senza doverlo ricavare da N_Protocollo?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:LNxE6.73276$s93.7...@news.infostrada.it...

questo non lo so... ho provato a mettere in Join il campo N_Protocollo con
uno dei due
campi di una nuova query creata in base alla query sopra riportata...ma mi
dava errore..
la query sopra riportata si apre solo in modalità Sql e non in modo
Struttura...
| 2) La lunghezza di N_Protocollo è sempre di 14 caratteri? Insomma la
lettera
| che identifica il comune è sempre nella decima posizione?
no ! purtoppo... xchè anche il progressivo cambia...quidi la lettera che
identifica il Comune non è sempre nella decima posizione....
| 3) Una volta selezionato il comune F, il "totale generale" è il totale
delle
| esenzioni di quel comune o deve essere comunque il totale delle esenzioni
di
| tutti e 5 i comuni?
la query che mi calcola il totale di tutti e 5 i Comuni insieme la ho...
come da codice Sql riportato sopra....a me servirebbe farlo x Comune....
| 4) Nella tabella Anagrafe non esiste un campo che identifichi il comune
| senza doverlo ricavare da N_Protocollo?
|
un campo che identifichi "solo" il Comune non c'è... pensi che converrebbe
farlo ?
e se si come ?
| Roberto
---------------------------
cmq... x me l'importante e che mi dia dei totali di codici di Esenzione x
Comune
se si può fare con un Report è lo stesso...
Cmq vada ... Roberto ...ti ringrazio x la disponibilità....


Ho capito che per te l'importante non è partecipare ma vincere, ma se non ci
dici un pò di cosine, per darti una mano ci vorrebbe una sfera di cristallo.
Report o query, se non si ha certezza sulla struttura dei dati e della loro
origine che vuoi che ti venga detto.
In fin dei conti devi solo crearti nella query un campo calcolato che
contiene la lettera del comune e raggruppare la query anche su quel campo.
Tutto qui,


 ha scritto nel messaggio
news:lwEE6.77087$s93.7...@news.infostrada.it...
[CUT]|
| Ho capito che per te l'importante non è partecipare ma vincere, ma se non
ci
| dici un pò di cosine, per darti una mano ci vorrebbe una sfera di
cristallo.
| Report o query, se non si ha certezza sulla struttura dei dati e della
loro
| origine che vuoi che ti venga detto.
| In fin dei conti devi solo crearti nella query un campo calcolato che
| contiene la lettera del comune e raggruppare la query anche su quel campo.
| Tutto qui,
--------------
scusami Roberto... non è il fatto di vincere... ma mi premeva il fatto che
mi serviva
risolvere il problema x domani...x il resto credo di essere un tipo
abbastanza calmo..
Cmq...se è possibile spiegarti meglio riguardo il campo calcolato te ne
sarei grato...
intanto chiedo... posso usare la query già esistente ???
come faccio ad inserire il campo con N_ protocollo dato che non me lo fa
inserire..
cmq ho creato questa nuova query... che come potrai vedere estraggo il
comune...
ma vorrei che mi raggruppasse e conteggiasse anche i Codici di esenzione...
  SELECT Esenzioni.Codice_Esenzione, Anagrafe.N_Protocollo
FROM Anagrafe INNER JOIN Esenzioni ON Anagrafe.ID_assistito =
Esenzioni.Id_Assistito
WHERE (((Anagrafe.N_Protocollo) Like [Digitare Iniziale Comune --  Esempio
*F*]))
ORDER BY Esenzioni.Codice_Esenzione;
------------------------
Ciao....

 ha scritto nel messaggio
news:uNFE6.77658$s93.7...@news.infostrada.it...

Quello che mi serviva sapere l'ho dedotto dalla query di selezione che hai
postato.
Se ho capito ciò che ti serve, questo dovrebbe essere il codice SQL della
query:
SELECT Esenzioni.Codice_Esenzione, Count(Esenzioni.Codice_Esenzione) AS
ConteggioDiCodice_Esenzione
FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.IDassistito =
Anagrafe.ID_assistito
WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] & "*"))
GROUP BY Esenzioni.Codice_Esenzione
UNION SELECT "TOTALE COMUNE " & [Digita Iniziale Comune:],
Count(Esenzioni.Codice_Esenzione) AS ConteggioDiCodice_Esenzione
FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.IDassistito =
Anagrafe.ID_assistito
WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] &
"*"));
Quando si aprirà la finestra che ti chiede di digitare l'iniziale del
comune, digita solo la lettera, senza chiuderla tra asterischi: quindi solo
o M, o F, o P, o G oppure I.
La query ti restituirà i totali per Codice_Esenzione ed il Totale delle
esenzioni del solo comune selezionato.
Se quando si apre la finestra di dialogo non digiti nulla e pigi solo il
pulsante OK, la query ti restituirà gli stessi valori di quella attuale,
ovverro effettuerà il conteggio di tutti e 5 i comuni insieme.


 ha scritto nel messaggio
news:%8IE6.78834$s93.7...@news.infostrada.it...
[CUT]

-------------------------
 ...non funziona...Roberto... nel senso che mi appare una prima finestra
dove digito la iniziale del Comune... e poi mi appare una seconda dove
recita... "Esenzioni.Id Assistito"...che anche se non digito niente...
oppure un asterisco il
risultato è sempre lo stesso...
mi compaiono vuoti due inizi di campi "Totale Comune F" e "Conteggio di
Codice esenzione" = 0....
consigli ???


Il consiglio è quello di mettere un underscore ( _ ) tra ID e assistito :
ID_assistito e non IDassistito come ho scritto io; il codice corretto
dovrebbe essere:
SELECT Esenzioni.Codice_Esenzione, Count(Esenzioni.Codice_Esenzione) AS
ConteggioDiCodice_Esenzione
FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.ID_assistito =
Anagrafe.ID_assistito
WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] & "*"))
GROUP BY Esenzioni.Codice_Esenzione
UNION SELECT "TOTALE COMUNE " & [Digita Iniziale Comune:],
Count(Esenzioni.Codice_Esenzione) AS ConteggioDiCodice_Esenzione
FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.ID_assistito =
Anagrafe.ID_assistito
WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] &
"*"));
Comunque ricontrolla tutti i nomi dei campi, io non ho la struttura delle
tabelle che usi, ma tu si.


 ha scritto nel messaggio
| SELECT Esenzioni.Codice_Esenzione, Count(Esenzioni.Codice_Esenzione) AS
| ConteggioDiCodice_Esenzione
| FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.ID_assistito =
| Anagrafe.ID_assistito
| WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] &
"*"))
| GROUP BY Esenzioni.Codice_Esenzione
| UNION SELECT "TOTALE COMUNE " & [Digita Iniziale Comune:],
| Count(Esenzioni.Codice_Esenzione) AS ConteggioDiCodice_Esenzione
| FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.ID_assistito =
| Anagrafe.ID_assistito
| WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] &
| "*"));
|
| Comunque ricontrolla tutti i nomi dei campi, io non ho la struttura delle
| tabelle che usi, ma tu si.
------------------------------------
sei grande Roberto...e gentile come sempre, funziona benissimo e fa proprio
quello che desideravo...
non mi definire pignolo .........cmq x dare un'altra rifinitura alla
query... ho sostituito "TOTALE COMUNE" con "Totali Esenzioni" però alla fine
di Esenzioni esce attaccata la lettera del Comune digitato... a questo punto
mi chiedo se fosse possibile lasciare uno spazio ed inserire x intero il
comune avendo così "Totali Esenzioni Formia | 3457.
Grazie...

 ha scritto nel messaggio
news:7fjF6.3097$PE.1...@news.infostrada.it...

Beh per risolvere il primo basta che digiti uno spazio tra la parola
Esenzione e le virgolette di chiusura, così come io avevo fatto dopo la
parola COMUNE.
Per mettere in chiaro il nome del comune, potresti crearti una tabella
chiamata TabComuni che abbia la seguente struttura:
CodCom        Testo e chiave primaria
Comune          Testo
La tabella conterrà 5 record che conterranno in CodCom l'iniziale del comune
( F o P o G ecc.) e nel campo Comune il nome per esteso del comune ( Formia
ecc.).
Prova quindi a modificare così il codice SQL della tua Query:
SELECT Esenzioni.Codice_Esenzione, Count(Esenzioni.Codice_Esenzione) AS
ConteggioDiCodice_Esenzione
FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.ID_assistito =
Anagrafe.ID_assistito
WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] & "*"))
GROUP BY Esenzioni.Codice_Esenzione
UNION SELECT "Totali Esenzioni " & DLookup("[Comune]", "TabComuni",
"CodCom=" & Chr$(34) &[Digita Iniziale Comune:] & Chr$(34)),
Count(Esenzioni.Codice_Esenzione) AS ConteggioDiCodice_Esenzione
FROM Esenzioni INNER JOIN Anagrafe ON Esenzioni.ID_assistito =
Anagrafe.ID_assistito
WHERE (((Anagrafe.N_Protocollo) Like "*" & [Digita Iniziale Comune:] &
"*"));
Fammi sapere se funziona.


 ha scritto nel messaggio
| news:7fjF6.3097$PE.1...@news.infostrada.it...
| Fammi sapere se funziona.
|
| Roberto
|
-------------------------
funziona egregiamente... sempre grazie a te Roberto...
ora mi creo un bel report come origine la tua query... ed anche x stavolta
ho risolto
o meglio hai risolto un mio problema...di nuovo 1000 grazie...
ps- se capiti da queste parti un caffè è assicurato ....
--
SuperPippo®   [;o))


Il bar da che parti sta? :-)


 ha scritto nel messaggio
| news:dUEF6.11234$PE.9...@news.infostrada.it...
| [CUT]
| > ps- se capiti da queste parti un caffč č assicurato ....
| >
| > --
| > SuperPippoŽ   [;o))
| >
|
| Il bar da che parti sta? :-)
--------------------------------------------
... qualcuno lo troviamo...   ;o)))
Ciao e grazie di nuovo...