MS Access 2003 - ordinare i valori di stringa per una casella di riepilogo non alfabetico
-
23-09-2019 - |
Domanda
Qui è una domanda stupida. Diciamo che ho una query che produce per una casella di riepilogo, e produce valori per tre negozi
Store A 18
Store B 32
Store C 54
Ora, se io ORDER BY nell'istruzione SQL l'unica cosa che farà è discendente o ascendente in ordine alfabetico ma voglio un certo ordine (solo perché vogliono un certo ordine) ..... così c'è un modo per me per aggiungere qualcosa alla SQL per ottenere
Store B
Store C
Store A
vale a dire. fondamentalmente riga per riga quello che voglio. grazie!
Soluzione
Aggiungere un campo numerico, sequencer , la tabella che contiene i nomi dei negozi. Utilizzare il sequencer valori per determinare il vostro ordinamento.
SELECT sequencer, store_name FROM YourTable ORDER BY sequencer;
Nella casella di riepilogo, impostare la larghezza della colonna = 0 per il sequencer colonna.
O semplicemente, come @ dscarr suggerito , non includere sequencer nell'elenco dei campi SELECT
, ma basta includerlo nel ORDER BY
...
SELECT store_name FROM YourTable ORDER BY sequencer;
Altri suggerimenti
Si può fare 1 di 2 cose.
Utilizzare un rel="nofollow INTERRUTTORE stament, qualcosa come
SELECT Table1.Store,
Table1.Val,
Switch([Store]="StoreB",1,[Store]="StoreC",2,[Store]="StoreA",3) AS Expr1
FROM Table1
ORDER BY Switch([Store]="StoreB",1,[Store]="StoreC",2,[Store]="StoreA",3);
In alternativa, utilizzare una tabella secondaria ordine, che memorizza i valori dei nomi dei negozi, e un ordine per valore.