Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Select Case

70 views
Skip to first unread message

Ammammata

unread,
Dec 11, 2018, 11:01:57 AM12/11/18
to
devo convertire un comando SQL Server nell'equivalente Access SQL, in una
query

questa funziona in SQL Server:

SELECT
CASE
WHEN CurrCode = 'EUR' THEN '0014'
WHEN CurrCode = 'USD' THEN '0009'
WHEN CurrCode = 'CHF' THEN '0008'
WHEN CurrCode = 'GBP' THEN '0006'
ELSE '0000'
END as A00007
FROM OCRN

e ottengo:

A00007
0006
0009
0014
0008


In Access purtroppo no :(

Gli esempi fanno riferimento al VBA, non ne ho ancora trovato uno per una
QUERY

come č la sintassi?

grazie

--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
>>>>> http://www.bb2002.it :) <<<<<
........... [ al lavoro ] ...........

Ammammata

unread,
Dec 11, 2018, 11:14:33 AM12/11/18
to
Il giorno Tue 11 Dec 2018 05:01:56p, *Ammammata* ha inviato su
it.comp.appl.access il messaggio
news:XnsA9B5AD450A47Aam...@148.251.67.112. Vediamo cosa
ha scritto:

> devo convertire un comando SQL Server nell'equivalente Access SQL, in
> una query
>

nota: per il momento ho scusato con una serie di IIF, ma vorrei capire come
usare CASE

IIf([DocCur]='GBP','0006',IIf([DocCur]='CHF','0008',IIf([DocCur]='USD','000
9',IIf([DocCur]='EUR','0014','0000')))) AS A00007

@Alex

unread,
Dec 11, 2018, 1:35:28 PM12/11/18
to
Non conviene una tabella di riferimento in join...?

@Alex

Karl Donaubauer

unread,
Dec 11, 2018, 6:45:39 PM12/11/18
to
Salve,

Ammammata ha scritto:
> devo convertire un comando SQL Server nell'equivalente Access SQL, in una
> query
> ...
> SELECT
> CASE
> WHEN CurrCode = 'EUR' THEN '0014'
> WHEN CurrCode = 'USD' THEN '0009'
> WHEN CurrCode = 'CHF' THEN '0008'
> WHEN CurrCode = 'GBP' THEN '0006'
> ELSE '0000'
> END as A00007
> FROM OCRN
> ...

Per i WHEN esiste Switch():
https://support.office.com/article/switch-function-d750c10d-0c8e-444c-9e63-f47504f9e379

Per la parte ELSE forse potresti usare IIF che controlla se Switch()
ritorna Null.

--
Ciao
Karl
*********
http://www.AccessDevCon.com
Access FAQ: http://www.donkarl.com/it



Ammammata

unread,
Dec 12, 2018, 2:17:02 AM12/12/18
to
Il giorno Tue 11 Dec 2018 07:35:26p, *@Alex* ha inviato su
it.comp.appl.access il messaggio news:e1faefd0-9ea7-4407-8867-
374453...@googlegroups.com. Vediamo cosa ha scritto:

>
> Non conviene una tabella di riferimento in join...?
>
>

non capisco questa tua idea

l'accrocchio qui sopra mi serve per convertire le valute degli ordini, che
sono memorizzate con la sigla, nei vecchi codici numerici del gestionale
precedente in quanto, per qualche anno, dovrò unire i due database da dare
in pasto al macinatore di reportistiche varie

quindi nel vecchio i dollari sono 0009, nel nuovo sono USD e devo appunto
fare la conversione

@Alex

unread,
Dec 12, 2018, 3:44:14 AM12/12/18
to
Il giorno mercoledì 12 dicembre 2018 08:17:02 UTC+1, Ammammata ha scritto:
> Il giorno Tue 11 Dec 2018 07:35:26p, *@Alex* ha inviato su
> it.comp.appl.access il messaggio news:e1faefd0-9ea7-4407-8867-
> 374453...@googlegroups.com. Vediamo cosa ha scritto:
>
> >
> > Non conviene una tabella di riferimento in join...?
> >
> >
>
> non capisco questa tua idea
>
> l'accrocchio qui sopra mi serve per convertire le valute degli ordini, che
> sono memorizzate con la sigla, nei vecchi codici numerici del gestionale
> precedente in quanto, per qualche anno, dovrò unire i due database da dare
> in pasto al macinatore di reportistiche varie
>
> quindi nel vecchio i dollari sono 0009, nel nuovo sono USD e devo appunto
> fare la conversione
>
>

Se fai una Tabella di Conversione e metti in JOIN il Campo lo converti... sfruttando l'autolookup...

TabCode:
CurrCode RetConv
EUR '0014'
USD '0009'
CHF '0008'
GBP '0006'

Mettendo in JOIN il campo CurrCode ricavi RetConv come campo di Conversione...

In questo caso la performance del JOIN è decicamente meglio della serie di IIF o SWITCH o CHOOSE, o una Funzione Esterna, che è sempre fattibile.

Cosa non ti torna...?

@Alex

Ammammata

unread,
Dec 12, 2018, 4:36:09 AM12/12/18
to
Il giorno Wed 12 Dec 2018 09:44:12a, *@Alex* ha inviato su
it.comp.appl.access il messaggio
news:09b78e66-c590-4a82...@googlegroups.com. Vediamo cosa
ha scritto:

>
> Se fai una Tabella di Conversione e metti in JOIN il Campo lo
> converti... sfruttando l'autolookup...
>
> TabCode:
> CurrCode RetConv
> EUR '0014'
> USD '0009'
> CHF '0008'
> GBP '0006'
>

ah, ok, la tabella c'è nel vecchio gestionale e ci sarebbe anche nel nuovo
ma i codici numerici non corrispondono

inoltre mentre elaboro i dati del nuovo non ho accesso al vecchio

infine, al momento, le valute utilizzate sono due, forse un domani tre: la
soluzione potrebbe essere un campo aggiuntivo nella nuova tabella che
contenga il codice della vecchia :)
0 new messages