Newsgroup: it.comp.appl.access
Titolo: classi

Ciao
Sono nuovo, quindi chiedo venia per eventuali mancanze.
Ho un problema che non riesco a risolvere ....
Ho una tabella tbl_Classi che non dipende da me e che non posso
cambiare...è formata da 3 campi, tipo [CLM_TIPO], codice [CLM_CODICE] e
descrizione [CLM_DESC].
Il primo è un valore (stringa) A(classe), B(categoria), C(tabella)
Il codice invece è una sequenza numerica di 6 cifre per il tipo C, 4
cifre per il tipo B e 2 cifre per il tipo A dove le cifre del tipo A
corrispondono alle prime due cifre del tipo B e C  e così anche per le
4 cifre del tipo B.
Tbl_Classi
CLM_TIPO	CLM_CODICE	CLM_DESC
A	01		materiali ferrosi
A	02		materiali non ferrosi
B	0201		materiali di alluminio
B	0202		materiali di rame
B	0203		materiali polimerici
C	020101		pannelloXX
C	020102		pannelloYY
C	020201		tubo l.10m
Io vorrei creare una query che associa ad un codice di tipo C la
descrizione della "tabella" della "categoria" e della "classe" a cui
appartiene.
CODICE	DTAB		CAT	DCAT		CLA	DCLA
020101	pannelloXX		0201	materiali di alluminio	02	materiali non
ferrosi
020102	pannelloYY	0201	materiali di alluminio	02	materiali non ferrosi
020201	tubo l.10m		0202	materiali di rame	02	materiali non ferrosi
E così per tutti i codici di tipo C.
Ho creato una query con questo codice SQL:
SELECT tbl_Classi.CLM_TIPO, tbl_Classi.CLM_CODICE, tbl_Classi.CLM_DESC
AS DTAB, Left([CLM_CODICE],2) AS CLA, Left([CLM_CODICE],4) AS CAT
FROM tbl_Classi
WHERE (((tbl_Classi.CLM_TIPO)="C"));
ma non è abbastanza..., il problema è che adesso non riesco a creare i
due campi DCAT e DCLA perchè ho filtrato per il tipo C!! Dovrei creare
due query una per la classe e una per la categoria, non c'è un modo
più compatto? Pensavo ad una subquery ma non ci riesco
Qualcuno riesce ad aiutarmi?
Grazie
luca


devi usare dei campi con iif senza filtrare nulla
esempio:
select campo1, IIf([campo2]="C","ppp","mm") AS campoiif from
tabella_prova
ciao

 - Mostra testo tra virgolette -
il risultato della query che vorrei ottenere (prima è venuto male,
vediamo questa volta...) è questo, per tutti i codici di tipo C:
CODICE  DTAB            CAT     DCAT                      CLA     DCLA
020101    pannelloXX     0201    materiali di alluminio  02
materiali non ferrosi
020102    pannelloYY    0201    materiali di alluminio  02
materiali non ferrosi
020201    tubo l.10m     0202    materiali di rame        02
materiali non ferrosi
Ho provato con l'IIf ma non riesco, posto il codice usato:
SELECT tbl_Classi.CLM_TIPO, tbl_Classi_.CLM_CODICE,
tbl_Classi.CLM_DESC AS DTAB, Left([CLM_CODICE],2) AS CLA,
IIf([CLM_CODICE]=[CLA],[CLM_DESC],"") AS DCLA, Left([CLM_CODICE],4) AS
CAT
FROM tbl_Classi;
in questo modo visualizza tutti i codici inseriti nella tabella (io
vorrei solo quelli di tipo C);
l'IIf funziona solo quando mi legge dalla tabella i valori di tipo A ,
ma per quelli di tipo C non riesce a "leggere" un record diverso
sempre della stessa tabella
spero di essermi spiegato bene altrimenti cerco di rispiegare con
altre parole
te cosa metteresti al posto di "ppp" e "mm"?
intanto grazie per l'interesse
luca

 luca
per il tipo C non avevo capito io, dei lasciare il where
per il resto capisco piů cosa devi fare
se riesci posta qui in modo leggibile un pezzo di tabella e il risultato
che vuoi ottenere dalla query (sempre leggibile) e poi vedo se riusciamo
ad aiutarti
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

luca
SELECT C.CLM_Tipo,
             C.CLM_Codice,
             C.CLM_Desc,
              Left$(C.CLM_Codice,4) AS CAT_Codice,
             (SELECT Cat.CLM_Desc FROM Classi Cat WHERE
Cat.CLM_Tipo='B' AND Cat.CLM_Codice= Left$(C.CLM_Codice,4)) AS
CAT_Desc,
              Left$(C.CLM_Codice,2) AS TAB_Codice,
             (SELECT Cat.CLM_Desc FROM Classi Cat WHERE
Cat.CLM_Tipo='A' AND Cat.CLM_Codice= Left$(C.CLM_Codice,2)) AS
TAB_Desc
FROM Classi AS C
WHERE C.CLM_Tipo="C";
Vincenzo Turturro 
Certificato Eucip Core Level 
ITA 0000-002299 del 14/05/2007 
--------------------------------------------- 
il sito comune di it.comp.appl.access: 
http://www.sitocomune.com
 
--------------------------------------------- 
risorse Access: 
http://www.accessgroup.it
 
--------------------------------------------- 
Il sito comune di it.comp.as400 
http://www.faq400.com
 
---------------------------------------------

 Vincenzo Turturro
Perfetto proprio quello che mi serviva! :)
Ringrazio tutti per l'aiuto che mi avete dato
luca