Newsgroup: it.comp.appl.access
Titolo: Query di selezione - campi testo

Ho una query con tre tabelle tab1 (quella principale), tab2 e tab3 con
ognuna un campo testo che si chiama CL. In tab1 la lunghezza di questo
campo è 80 e nelle altre due è 30. Se confronto tab1.CL con tab2.CL mi
riconosce i record uguali fino ai primi 30 caratteri (cioè quello che
voglio). Se invece confronto tab1.CL e tab3.CL mi riconosce solo i
record in cui il campo tab1.CL  NON SUPERA I 30 CARATTERI. Sto
impazzendo! Intuisco che forse c'è un sistema per mettere a confronto in
modo diverso le tabelle, ma non riesco. Mi potete aiutare, per favore?
Toni.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:fa5606fda57af591508...@mygate.mailgate.org...

Cosa intendi quando scrivi "confronto"?
Fai il join tra le tabelle.
Forse è bene che spieghi meglio cosa ti serve, ed ancora meglio se posti il
codice SQL della query che non funziona come vorresti tu.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ---------------------------------------------
Ciao, Roberto. Ogni tanto ci si risente...
Per confronto intendevo una query di selezione.
Ti mando il mio sql:
SELECT [Clienti].[Nominativo], [RibaEmesse].[Nominativo], [pag].[CL]
FROM (Clienti LEFT JOIN RibaEmesse ON
[Clienti].[Nominativo]=[RibaEmesse].[Nominativo]) LEFT JOIN pag ON
[Clienti].[Nominativo]=[pag].[CL]
GROUP BY [Clienti].[Nominativo], [RibaEmesse].[Nominativo], [pag].[CL]
ORDER BY [Clienti].[Nominativo];
Se metto in relazione solo Clienti.Nominativo (80 caratteri) e
RibaEmesse.Nominativo (30 caratteri), mi mostra solo i record che, nella
tabella clienti, non superano i 30 caratteri.
Invece nella tabella Pag, il campo CL č di 30 caratteri come
RibaEmesse.Nominativo, ma qui funziona bene.
Spero di essere stato chiaro.
Aspetto fiducioso.....



Prova così:
SELECT [Clienti].[Nominativo], [RibaEmesse].[Nominativo], [pag].[CL]
FROM (Clienti LEFT JOIN RibaEmesse ON Left$([Clienti].[Nominativo], 30) =
Left$([RibaEmesse].[Nominativo], 30)) LEFT JOIN pag ON
Left$([Clienti].[Nominativo], 30) = Left$([pag].[CL], 30)
GROUP BY Left$([Clienti].[Nominativo], 30),
Left$([RibaEmesse].[Nominativo], 30), Left$([pag].[CL], 30)
ORDER BY Left$([Clienti].[Nominativo], 30);
Chissà che non funzioni! ;-)
Comunque l'esito della query dipende anche dalla presenza o meno (per un
certo nominativo) dei record nelle tre tabelle.


 Roberto
Ciao.Ho provato, ma mi dice: Impossibile eseguire una query che non
include l'espressione <nome> specificata
come parte di una funzione di aggregazione.
So che l'esito delle query dipende dalla presenza di un certo nominativo
nelle tabelle...
Comunque avevo fatto in modo di vedere tutti i record della tabella
clienti
e solo quelli uguali della tabella Pag.
Per questo mi sto incaponendo. Il record nella tabella Pag esiste, è
digitato bene, gli spazi al posto giusto, ecc.
E poi, perchè invece nell'altra tabella funziona? Anche li si mettono in
relazione 80 caratteri con 30 caratteri, senza la funzione left$.
Ci riuscirò?
Ciao. Toni.


 Ciao. Toni.
E allora prova cosě:
SELECT [Clienti].[Nominativo], [RibaEmesse].[Nominativo], [pag].[CL]
FROM (Clienti LEFT JOIN RibaEmesse ON Left$([Clienti].[Nominativo], 30) =
Left$([RibaEmesse].[Nominativo], 30)) LEFT JOIN pag ON
Left$([Clienti].[Nominativo], 30) = Left$([pag].[CL], 30)
GROUP BY [Clienti].[Nominativo], [RibaEmesse].[Nominativo], [pag].[CL]
ORDER BY [Clienti].[Nominativo];
Se non funziona neppure cosě, sarei portato a pensare, tuo malgrado, che
qualcosa non va nel campo CL della tabella Pag.
