Newsgroup: it.comp.appl.access
Titolo: opzione di raggruppamento in un report

un saluto a tutti.
da una tabella anagrafica dovrei ottenere un report in cui raggruppare
i record per età secondo intervalli definiti:
meno di 17 anni
fra 18 e 34
fra 35 e 49
fra 50 e 64
piu di 65
è possibile? qualcuno mi può aiutare?
grazie
oscar

 piu di 65
Ciao.
Nell'origine del report metti una query tipo questa qua sotto.
SELECT Iif(Età<18,0,Iif(Età<35,1,Iif(Età<50,2,Iif(Età<65,3,4)))) AS
RangeEtà, * FROM Anagrafica;
Nel report dovrai ordinare e raggruppare per RangeEtà.
HTH
Popi

Popi
Ti ringrazio, ma non funziona.
Mi da questo messaggio di errore:
Una parola riservata o un nome di argomento è stato digitato in modo
errato o non è presente. La punteggiatura è errata. 
per precisare meglio debbo dire che l'origine dei record non è una
tabella ma una query: Q_CONTEGGIO_SESSO_ETAMEDIA. in cui il campo
interessato si chiama Eta_visita
ho modificato la tua riga di codice in quel senso ed ho ottenuto:
SELECT
Iif(Eta_visita=E0<18,0,Iif(Eta_visita=E0<35,1,Iif(Eta_visita=E0<50,2,Iif(Eta_visita=E0<65,3,4))))
AS RangeEta_visita=E0, * FROM Q_CONTEGGIO_SESSO_ETAMEDIA;
l'ho inserita nella cartella dati delle proprietà del report alla
prima riga: origine record.
dov'è l'errore?
grazie di nuovo
oscar

 dov' l'errore?
Suppongo in "AS RangeEta_visita=E0", che contiene un "=E0" di troppo.
HTH
Popi

"Popi - TheBadHabits"  ha scritto nel messaggio 
news:a9986b35-b5e8-4927...@hd10g2000vbb.googlegroups.com...


HTH
Popi
____________Risposta:
non solo ma anche nell'iif
IIF(Eta_Visita<18,0,
(iif(eta_visita>=18 AND Eta_visita <35,1,
...
questo perché 10 è sia il caso 0 che tutti gli altri
poi metti un E0 che non si capisce che cosa sia
MA

 poi metti un E0 che non si capisce che cosa sia
MA, temo dipenda dalle lettere accentate (che io non vedo) e che
magari il suo newsreader converte (ad es. "=E0" suppongo corrisponda
alla "a" accentata "à").
Popi

"Popi - TheBadHabits"  ha scritto nel messaggio 
news:29bcc26f-dbac-4ea7...@r17g2000vbc.googlegroups.com...


Popi
___Rispsota:
Ma eta_visità?
semmai il contrario e comunque c'è il discorso del range
MA

 semmai il contrario e comunque c' il discorso del range
Non se ci ho visto giusto (1) ed ha incolla in vba dal newsreader,
introducendo quel "=E0" nel codice dove, poi, è rimasto.
Sul range, invece, forse non mi sono capito.
Secondo quanto dice Oscar, gli estremi (2) sono (tra parentesi i
valori per il raggruppamento)
- meno di 17 anni (0)
- fra 18 e 34 (1)
- fra 35 e 49 (2)
- fra 50 e 64 (3)
- piu di 65 (4)
Mentre la IIF(ETA<18,0,1) non ha bisogno di spiegazioni, nidificandola
come IIF(ETA<18,0,IIF(ETA<35,1,2)) ottengo che se l'età non è minore
di 18 ed è minore di 35, che è come dire che l'età è maggiore o uguale
a 18 e minore o uguale a 34, o no? (3)
O non ho capito il tuo punto? (4)
Popi
(1) Facile che sia così, sono miope (AKA cecato) come una talpa da 40
anni ...
(2) E se uno ha 17 anni dove finisce? :)
(3) Oh, se ho cannato proprio questa porta pazienza: mi son fermato al
diploma ormai 25 anni fa.
(4) Ca va sans dire :))))

(4) Ca va sans dire :))))
 vi ringrazio per il vostro aiuto, ma non ho capito niente.
mi potete per favore riscrivere la riga di codice considerando che il
campo interessato è  ETA_VISITA  
la query di origine Q_CONTEGGIO_SESSO_ETAMEDIA
e le fasce d'età:
 meno di 17 anni
 fra 18 e 34
fra 35 e 49
fra 50 e 64
piu di 65
grazie di nuovo per la vostra pazienza
oscar

 piu di 65
Prego, ma lo farò dopo che MA avrà espresso il suo punto di vista.
Anche perché se uno ha proprio 17 anni .... in che fascia d'età
dovrebbe finire? ;)
Popi

"Oscar"  ha scritto nel messaggio 
news:4d6e391c...@news.fastwebnet.it...






__________Risposta:
E siccome Popi mi piace fare lo sborone, che ne dici di questa
Select id,
IIF(Eta_visita <=17;1;iif(Eta_visita betwen 18 and 34;2;iif(Eta_visita 
between 35 and 49;3)   ))
as Quellochehaichiesto,
SWITCH(Eta_visita <=17;1; Eta_visita betwen 18 and 34;2;Eta_visita between 
35 and 49;3) as Sborone
Oscar sono campi che danno lo stesso risultato ma calcolata in maniera 
diversa 



mi dovete scusare, ma sono poco più che un principiante.
dopo aver compreso la sintassi della riga di codice che cosa ci debbo
fare? dove la debbo inserire?
grazie per l'aiuto
Oscar

"Oscar"  ha scritto nel messaggio 
news:4d6f4926...@news.fastwebnet.it...



__________Risposta:
Nell'origine del report
MA

 35 and 49;3) as Sborone
Evabbè allora dillo che vuoi fare il grosso! (1)
Io la funzione switch non l'ho mai usata ... e neanche la clausola
between ...!!!
Noto che hai interpretato "meno di 17" come "<=17" e non come "<17" ;)
Tanto per fare un po' di filosofia: Quellochehaichiesto, Sborone e
KeepItSimple danno ovviamente lo stesso risultato, ma ... con che
differenze prestazionali?
SELECT Persona, Eta,
IIf(Eta<=17,1,IIf(Eta Between 18 And 34,2,IIf(Eta Between 35 And
49,3,IIf(Eta Between 50 And 64,4,5)))) AS Quellochehaichiesto,
Switch(Eta<=17,1,Eta Between 18 And 34,2,Eta Between 35 And 49,3,Eta
Between 50 And 64,4,Eta>=65,5) AS Sborone,
IIf(Eta<18,1,IIf(Eta<35,2,IIf(Eta<50,3,IIf(Eta<65,4,5)))) AS
KeepItSimple
FROM Tabella1;
Popi
(1) sì, lo so che l'hai detto :D

(1) s=EC, lo so che l'hai detto :D
grazie, alla prossima
oscar