Newsgroup: it.comp.appl.access
Titolo: SQL ordinare campi

Ho 4 campi:  1 (id ) , 2, 3, 4 come si può fare con SQL ad ordinare
in base alla seguente gerarchia:
1) il campo 2 in modo crescente;
2) il campo 4 in base al nome che io voglio: quindi, né cresc né decres
ma decido io l'ordine in base alle parole scritte dentro al campo quindi
ordino ad esempio 'PPPP',  'AAAA',  'DDDD', 'NNNN';
3) il  campo 3 sempre in ordine crescente, tranne però quando
nel 4 campo ho NNNN; nel caso deve essere ordinato
in base al campo 1 crescente
esempio, considerando il campo 1 con solo i valori null ed S
01         null      A       PPPP
10         null      B       PPPP
22         null      C       PPPP
11         null      D       PPPP
----------------------------------------
06         null      A       AAAA
08         null      B       AAAA
----------------------------------------
03         null      A       DDDD
04         null      B       DDDD
----------------------------------------
12         null      C       NNNN
13         null      B       NNNN
14         null      A       NNNN
15         null      D       NNNN
----------------------------------------
etc….
tralascio l'ordinamento in quanto come sopra
solo che al posto dei null  inizio a trovare le S
qui sotto per i TopTopGunAccess (sopra per TopGun)
ancora più complicato, se avete X energia da utilizzare
per risposta utilizzatela prima per il problema sopra :-)
perché gia quello sotto ne richiede (credo) buona percentuale
per la comprensione (anche se spiegato al meglio (credo) );
fatto salvo che non siate guru.
riguardo al punto 3 è possibile inoltre tale variante:
il  campo 3 sempre in ordine crescente, tranne però quando
nel 4 campo ho NNNN; nel caso deve essere ordinato
……………..
ora:
siccome io nella tabella ho gia un ordine dei record
in cui il campo 3 è NNNN,
poterli ordinare variando la posizione cioè:
(praticamente una alternativa al modo di ordinare in
base al nome scritto nel campo)
ad esempio quando apro la tabella base ho questo
campo 3   campo 4
 L          NNNN       in 1a posizione
 C         NNNN       in 2a posizione
 H         NNNN       in 3a posizione
 B         NNNN       in 4a posizione
 E          NNNN      in 5a posizione
 A         NNNN       in 6a posizione
 F          NNNN      in 7a posizione
 J           NNNN      in 8a posizione
spostare 3 posizioni  cioè chi è in 8 lo rimetto per prima etc.
J           NNNN      (era in 8a pos)
B          NNNN      (era in 4a pos)
E          NNNN      (era in 5a pos)
e da qui in poi invece ordino in modo cresc il campo 3
A          NNNN     in 6a posizione
C          NNNN       in 2a posizione
F          NNNN      in 7a posizione
H           NNNN     in 3a posizione
L           NNNN      in 1a posizione

 fatto salvo che non siate guru.
Fino a quello che hai detto dovrebbe funzionare questo sporco trucco,
ragionato ma non testato, lo provi tu:
Crea una tabella con due campi, uno deve contenere i valori del campo 4,
l'altro un progressivo che ordini i valori come hai detto tu, quindi 1 per
P, 2 per A, 3 per D e 4 per N.
La tua query avrà la tabella originale e quella nuova in join sul campo 4.
Poi metti i campi in questo ordine mettendo crescente il campo PROG, il
Campo 2 e il campo Calcolato
Campo1 PROG Campo2 Calcolato Campo3 Campo4
Il campo Prog è il progressivo della nuova tabella.
Il campo calcolato è un campo calcolato fatto così
iif (campo4 = "NNNN";Campo1;Campo3)
In questo modo se siamo nel caso NNNN ti ordinerà per i valori del campo1,
altrimenti per quelli del campo3
Per quell'altro caso probabilemnte non sono toptopgun, ma non ho capito una
mazza!!!
Antonio

 mazza!!!
mmmmmhhh avevo infatti ipotizzato ciò
comunque se funziona il tuo suggerimento è già buona cosa
e poi non vorrei distruggerti tutto in una volta
mi riservo altre casistiche tra cui anche questa in un secondo momento
a proposito a che piano abiti, spero al piano terra altrimenti poveri
sottoinquilini
thank you di nuovo
a proposito sei riuscito a risolvere il problema dei report?

 mazza!!!
mmmmmhhh avevo infatti ipotizzato ciò


 a proposito sei riuscito a risolvere il problema dei report?
Sì, mi sono inventato uno sporchissimo trucco.
Appena ho un po' di tempo lo posto per chi voglia saperlo...
Antonio