Newsgroup: it.comp.appl.access
Titolo: errore su tipi di dati

salve a tutto il ng. 
Abbiamo un db access con deu semplici tabelle che riportano dei dati
importati da diversi files di testo. sono dati delle asl e vengono inviati
secondo un tracciato ministeriale standard. importando questi dati in
Access 2000 in un'unica tabella per tutte le asl e poi facendo delle query
per tirar fuori i dati relativi alle singole ASL con in codice dell'asl
(con la funzione ad esempio like "102" ) funziona se vado a a mettere 102
103 104 105 106. se metto 101 mi da come errore "Tipi di dato non
corrispondenti nell'espressione criterio". ma i dati vengono tutti dalla
stessa tabella e il campo su cui vado a lavorare è di testo. come fa ad
essere interpretato diversamente? 
grazie ciao SAbrina
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 essere interpretato diversamente?
Posta un paio di stringhe SQL usate, caso fortunato e non
Antonio

 grazie ciao SAbrina
Con il like funziona perchè il campo della tabella è di tipo testo.
Se scrivi solo 101 o 102 non funziona e ti dà proprio quell'errore, perchè
cerchi di confrontare un numero con un testo.
Prova con "101" o "102" o "103" ecc... cioè racchiudendo il codice tra
doppi apici.
Il like non serve se non usi caratteri jolly (? * [])
Namor
-- 
Aiuta chi ne ha bisogno, non ti costa niente:
www.shopmon.it
 
www.porloschicos.com


funziona
 
SELECT A1.[Regione addebitante], A1.[Az USl inviante], A1.[Codice
Istituto], A1.[Numero Scheda], A1.[Regione Residenza], A1.[Provincia
Comune Residenza], A1.[USL Residenza], A2.DRG, Sum(A2.[Importo Degenza])
AS [SommaDiImporto Degenza]
FROM A1 INNER JOIN A2 ON 
A1.ID
 = 
A2.ID
GROUP BY A1.[Regione addebitante], A1.[Az USl inviante], A1.[Codice
Istituto], A1.[Numero Scheda], A1.[Regione Residenza], A1.[Provincia
Comune Residenza], A1.[USL Residenza], A2.DRG
HAVING (((A1.[Az USl inviante])="102"));
 
non funziona
SELECT A1.[Regione addebitante], A1.[Az USl inviante], A1.[Codice
Istituto], A1.[Numero Scheda], A1.[Regione Residenza], A1.[Provincia
Comune Residenza], A1.[USL Residenza], A2.DRG, Sum(A2.[Importo Degenza])
AS [SommaDiImporto Degenza]
FROM A1 INNER JOIN A2 ON 
A1.ID
 = 
A2.ID
GROUP BY A1.[Regione addebitante], A1.[Az USl inviante], A1.[Codice
Istituto], A1.[Numero Scheda], A1.[Regione Residenza], A1.[Provincia
Comune Residenza], A1.[USL Residenza], A2.DRG
HAVING (((A1.[Az USl inviante])="101"));
ciao sabrina 


 cerchi di confrontare un numero con un testo.
Guarda che se in una query metti un criterio con delle cifre sotto un campo
testo, ci pensa lui ad aggiungere i doppi apici!!!!
Antonio

 HAVING (((A1.[Az USl inviante])="101"));
Sono basito....
Prova a fare una query semplicissima sulla tabella mettendo il criterio 101,
poi il 102, poi 101 or 102. vedi che fa
Antonio

Antonio Biso ha scritto:



Uhm... già. A meno che non scrivi la query in SQL e allora non mette gli
apici in automatico e ti dà proprio quell'errore.
Ma, visto l'SQL delle due query, non è questo il caso.
Namor
-- 
Aiuta chi ne ha bisogno, non ti costa niente:
www.shopmon.it
  -  
www.porloschicos.com


Antonio Biso ha scritto:


Proprio strano, è tutto a posto, non dovrebbe dare problemi.
Proporrei una compattazione/ripristino del db. Una volta mi ha risolto un
caso assurdo tipo questo.
E per ottimizzare la query si può mettere un WHERE al posto dell'HAVING (o
un "Dove" al posto di "Raggruppamento" in visualizz. struttura).
Se modifichi l'SQL a mano il WHERE va spostato prima del GROUP BY.
Namor
-- 
Aiuta chi ne ha bisogno, non ti costa niente:
www.shopmon.it
  -  
www.porloschicos.com
questo articolo e` stato inviato via web dal servizio gratuito 


RISOLTO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
nella query c'è una somma che lavora su un campo testo.... per cui viene
fatta la conversione ...ma nella tabella c'era una valore in
corrispondenza del 101 pari a 2,101,00 che ovviamente non è un numero 
ciao e grazie a tutti due 
