Discussione:
calcolo percentuale in una query
(troppo vecchio per rispondere)
Stefano
2007-11-20 10:52:31 UTC
Permalink
Buongiorno a tutti

In una Tabella anagrafica allievi con campo maschio o femmina
dovrei con una query calcolare la somma raggruppata di maschi e femmine e
stabilire la percentuale di uno sull'altro.
Nella formula metto conteggio ma fa la somma di tutti gli allievi , io la
vorrei divisa , ma se imposto criteri
esce msg. tipi di dati non corispondenti , e la percentuale neanche a
parlarne

Dove sbaglio ?
Ringrazio a priori per interessamento e prassi operativa
'Roccia' Max
2007-11-20 12:11:04 UTC
Permalink
Post by Stefano
Nella formula metto conteggio ma fa la somma di tutti gli allievi , io la
vorrei divisa , ma se imposto criteri
esce msg. tipi di dati non corispondenti , e la percentuale neanche a
parlarne
Dove sbaglio ?
'un ho capito.
Prova a postare la stinga SQL della tua query, e vediamo dove sbagli.

Comunque il conteggio si fa cosi'
SELECT TabAllievi.Sesso, count(TabAllievi.Nome) as Allievi FROM
TabAllievi GROUP BY TabAllievi.Sesso

per le percentuali e' piu' fetente, devi tirare in ballo una
subselect:

SELECT TabAllievi.Sesso, count(TabAllievi.Nome)/(
SELECT Count(TabAllievi.Nome) FROM TabAllievi ) as Allievi FROM
TabAllievi GROUP BY TabAllievi.Sesso

cia'
Max
Carlo Costarella
2007-11-20 12:23:52 UTC
Permalink
Post by Stefano
Buongiorno a tutti
In una Tabella anagrafica allievi con campo maschio o femmina
dovrei con una query calcolare la somma raggruppata di maschi e femmine e
stabilire la percentuale di uno sull'altro.
Nella formula metto conteggio ma fa la somma di tutti gli allievi , io la
vorrei divisa , ma se imposto criteri
esce msg. tipi di dati non corispondenti , e la percentuale neanche a
parlarne
Dove sbaglio ?
Ringrazio a priori per interessamento e prassi operativa
Ci possono essere molte strade per ottenere il risultato da te voluto.
Te ne propongo una (la tabella si chiama Anagrafica e il campo sesso
contiene una M o una F):
Tre query:
La prima conta i maschi:
SELECT Count(Anagrafica.Sesso) AS ContaMaschi
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="M"));
La salvo con il nome di "SQContaMaschi"

La seconda conta le femmine:
SELECT Count(Anagrafica.Sesso) AS ContaFemmine
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="F"));
La salvo con il nome di "SQContaFemmine"

La terza e decisiva query si serve delle prime due:
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine, ([Maschi]*100)/[Conta
Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta Anagrafica] & " %" AS PF
FROM Anagrafica;

Ciao, Carlo
ste
2007-11-20 12:55:06 UTC
Permalink
Post by Carlo Costarella
Post by Stefano
Buongiorno a tutti
In una Tabella anagrafica allievi con campo maschio o femmina
dovrei con una query calcolare la somma raggruppata di maschi e femmine e
stabilire la percentuale di uno sull'altro.
Nella formula metto conteggio ma fa la somma di tutti gli allievi , io la
vorrei divisa , ma se imposto criteri
esce msg. tipi di dati non corispondenti , e la percentuale neanche a
parlarne
Dove sbaglio ?
Ringrazio a priori per interessamento e prassi operativa
Ci possono essere molte strade per ottenere il risultato da te voluto.
Te ne propongo una (la tabella si chiama Anagrafica e il campo sesso
SELECT Count(Anagrafica.Sesso) AS ContaMaschi
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="M"));
La salvo con il nome di "SQContaMaschi"
SELECT Count(Anagrafica.Sesso) AS ContaFemmine
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="F"));
La salvo con il nome di "SQContaFemmine"
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine, ([Maschi]*100)/[Conta
Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta Anagrafica] & " %" AS PF
FROM Anagrafica;
Ciao, Carlo
Grandi ringraziamenti ,
facevo la query direttamente dalla sua struttura quindi non digitavo il
codice SQL
ora provo ma sono sicuro che funzionera'

Ciao
Stefano
Carlo Costarella
2007-11-20 12:59:00 UTC
Permalink
"ste" <***@libero.it> ha scritto nel messaggio news:4742d91f$0$36445$***@reader5.news.tin.it...
cut
Post by ste
Post by Carlo Costarella
Grandi ringraziamenti ,
facevo la query direttamente dalla sua struttura quindi non digitavo il
codice SQL
ora provo ma sono sicuro che funzionera'
Ciao
Stefano
Le istruzioni SQL che ti ho postato sono esattamente delle query salvate di
cui riporto il codice perchè molto più semplice da scrivere. Ripeto sono
delle query salvate...è l'istruzione che puoi leggere se dal menù
"visualizza" scegli "visualizzazione SQL" quando ti trovi in struttura della
query.

Ciao, Carlo
ste
2007-11-20 17:04:35 UTC
Permalink
Dunque questa query e' OK
Post by Carlo Costarella
SELECT Count(Anagrafica.Sesso) AS ContaMaschi
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="M"));
La salvo con il nome di "SQContaMaschi"
Anche la seconda e' OK
Post by Carlo Costarella
SELECT Count(Anagrafica.Sesso) AS ContaFemmine
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="F"));
La salvo con il nome di "SQContaFemmine"
Questa mi restituisce errore con la formula #Error nelle percentuali
Post by Carlo Costarella
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine,
([Maschi]*100)/[Conta Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta
Anagrafica] & " %" AS PF
FROM Anagrafica;
Ho dei dubbi anche sulla costruzione della Query
devo inserire le prime due nella query 3 e poi usare un campo per
l'istruzione SQL ?

Non mi e' chiaro come costruire la terza query
Grazie di nuovo
Stefano
Carlo Costarella
2007-11-20 17:25:23 UTC
Permalink
Post by ste
Dunque questa query e' OK
cut
Post by ste
Anche la seconda e' OK
cut
Post by ste
Questa mi restituisce errore con la formula #Error nelle percentuali
Apri questa terza query in struttura dopo aver incollato l'enunciato (la
stringa sql che ti ho inviato) nella finestra sql...quindi apri la query in
"struttura" usando l'icona con la squadretta. Qui, essendo una query
raggruppata, dovrai inserire nella formula...conteggio nella prima colonna
ed Espressione in tutte le altre. Controlla i nomi che hai dato ai campi
delle prime due query perchè nella terza query vengono richiamati.

Ciao, Carlo
ste
2007-11-20 17:37:22 UTC
Permalink
Post by Carlo Costarella
Post by ste
Dunque questa query e' OK
cut
Post by ste
Anche la seconda e' OK
cut
Post by ste
Questa mi restituisce errore con la formula #Error nelle percentuali
Apri questa terza query in struttura dopo aver incollato l'enunciato (la
stringa sql che ti ho inviato) nella finestra sql...quindi apri la query
in "struttura" usando l'icona con la squadretta. Qui, essendo una query
raggruppata, dovrai inserire nella formula...conteggio nella prima colonna
ed Espressione in tutte le altre. Controlla i nomi che hai dato ai campi
delle prime due query perchè nella terza query vengono richiamati.
Quando lancio la query mi chiede il parametro conta
dando l'OK mi calcola perfettamente la percentuale maschi ma non calcola la
percentuale femmina

ma perche' chiede il parametro ?
Forse sbaglio ancora qualcosa

Comunque la tua gentilezza e' notevole
Ciao
Stefano
Carlo Costarella
2007-11-20 18:36:02 UTC
Permalink
"ste" <***@libero.it> ha scritto nel messaggio news:47431b46$0$10626$***@reader2.news.tin.it...
cut
Post by ste
Quando lancio la query mi chiede il parametro conta
dando l'OK mi calcola perfettamente la percentuale maschi ma non calcola
la percentuale femmina
ma perche' chiede il parametro ?
Forse sbaglio ancora qualcosa
Il nome del campo o parte di esso...accertati inoltre che non vi siano spazi
nel nome. Il controllo va fatto anche sui nomi delle altre query.
Forse facciamo prima se mi dici cosa hai cambiato negli sql che ti ho
postato o addirittura se posti qui i tre enunciati.
Potrò risponderti solo domani

Ciao, Carlo
ste
2007-11-21 09:22:54 UTC
Permalink
Ciao Carlo

Dunque per riassumere :
Tabella Anagrafica
ID
Nome
Cognome
Sesso
ecc.

Query SQContaMaschi

SELECT Count(Anagrafica.sesso) AS ContaMaschi
FROM Anagrafica
WHERE (((Anagrafica.Sesso)="M"));

Funziona

Query SQContaFemmine

SELECT Count(Anagrafica.Sesso) AS ContaFemmine
FROM Anagrafica
WHERE (((Anagrafica.sesso)="F"));

Funziona

QueryPercentuali

SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine, ([Maschi]*100)/[Conta
Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta
Anagrafica] & " %" AS PF
FROM Anagrafica;

Quando lancio chiede parametro conta !!
do solo ok , calcola giusto percentuale maschi , non calcola percentuale
femmine

Ringrazio molto
Ciao
Stefano
Carlo Costarella
2007-11-21 10:54:59 UTC
Permalink
"ste" <***@libero.it> ha scritto nel messaggio news:4743f8e1$0$10616$***@reader2.news.tin.it...
cut
Post by Carlo Costarella
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine, ([Maschi]*100)/[Conta
Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta
Anagrafica] & " %" AS PF
FROM Anagrafica;
Quando lancio chiede parametro conta !!
do solo ok , calcola giusto percentuale maschi , non calcola percentuale
femmine
Ringrazio molto
Ciao
Stefano
Certamente, c'è un errore dovuto a ritorno a capo.
Così va bene:
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine, ([Maschi]*100)/[Conta
Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta Anagrafica] & " %" AS PF
FROM Anagrafica;

Il problema credo sia dovuto al fatto che con il copia e incolla parte del
testo viene portato a capo.
Quando apri in stuttura la query accertati che in tutti i campi non vi sia
un ritorno a capo.
Assicuro che funziona con questi accorgimenti.

Ciao, Carlo
ste
2007-11-21 13:05:01 UTC
Permalink
Post by Carlo Costarella
cut
Post by Carlo Costarella
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine,
([Maschi]*100)/[Conta Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta
Anagrafica] & " %" AS PF
FROM Anagrafica;
Quando lancio chiede parametro conta !!
do solo ok , calcola giusto percentuale maschi , non calcola percentuale
femmine
Ringrazio molto
Ciao
Stefano
Certamente, c'è un errore dovuto a ritorno a capo.
SELECT Count(Anagrafica.ID) AS [Conta Anagrafica],
DLookUp("ContaMaschi","SQContaMaschi") AS Maschi,
DLookUp("ContaFemmine","SQContaFemmine") AS Femmine, ([Maschi]*100)/[Conta
Anagrafica] & " %" AS PM, ([Femmine]*100)/[Conta Anagrafica] & " %" AS PF
FROM Anagrafica;
Il problema credo sia dovuto al fatto che con il copia e incolla parte del
testo viene portato a capo.
Quando apri in stuttura la query accertati che in tutti i campi non vi sia
un ritorno a capo.
Assicuro che funziona con questi accorgimenti.
Ciao, Carlo
Funziona tutto
Sentiti Ringraziamenti

Ciao e Buona Giornata
Stefano
Continua a leggere su narkive:
Loading...