Newsgroup: it.comp.appl.access
Titolo: Query con criteri su più campi

Un saluto a tutto il ng.
E' possibile fare una query su di una tabella avente più criteri di
selezione?
Mi spiego meglio:
Ho una tabella con una serie di campi io voglio che la stessa query mi
filtri per campi differenti es: ho il campo1 e il campo2 voglio che la query
mi tiri fuori tutti i record dove il campo1 è uguale a xxx e dove il campo2
=yyy a prescindere cha siano tutti e due pieni. Cioè potrebbe essere che in
un record il campo1 =xxx ma il campo2 è nullo e viceversa.
Spero di essere stato chiaro.
Un grazie in anticipo.
Luca
--------------------------------
Inviato via 
http://usenet.libero.it

 Luca
È possibile: basta che i criteri elencati nella clausola where della query
siano separati dall'operatore OR:
"SELECT * FROM TUATABELLA WHERE TUATABELLA.CAMPO1=XXX OR
TUATABELLA.CAMPO2=YYY"
Se utilizzi il querybuilder puoi ottenere lo stesso effetto scrivendo i due
criteri non sulla stessa riga ma su due righe differenti.
Ciao
Galliano


Ti posto come l'ho inserita:
Così come mi hai detto tu funziona ma avrei bisogno che se entrambi i campi
soddisfano il mio criterio il record fosse scritto due volte mentre invece
così me lo scrive una volta sola. Chiedo troppo?
Grazie
SELECT *
FROM [CANONE MEDIA]
WHERE [CANONE MEDIA].[1_DATA_CAN_MEDIA]<=#8/8/2003# Or [CANONE
MEDIA].[2_DATA_CAN_MEDIA]<=#8/8/2003#;


 Luca
I record che hanno il valore Null nei campi sui quali vengono impostati i
criteri di selezione non vengono mai selezionati.
Per maggiori ragguagli vai sul  SitoComune (link qui sotto) e nella Sezione
Queries leggi la FAQ di Federico Luciani intitolata "Visualizzare tutti i
records con una query parametrica".
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Luca
Non credo che sia possibile ottenere una cosa del genere: dal punto di vista
logico un solo record può soddisfare entrambi i criteri, oppure solo uno,
oppure nessuno; in nessun caso una query di selezione te lo restituirà più
di una volta. Se per te è indispensabile visualizzare comunque due volte il
record che soddisfa entrambi i criteri (devo dire però che l'utilità mi
sfugge), puoi utilizzare due query di accodamento (v.help) che,
indipendentemente l'una dall'altra, inseriscano in una tabella d'appoggio
predisposta allo scopo prima tutti i record che soddisfano un criterio e poi
tutti quelli che soddisfano l'altro, ottenendo così la duplicazione dei
record che rispettano entrambe le condizioni.
Ciao
Galliano.

 e viceversa.
Non ho capito intendi:
SELECT * FROM Tabella WHERE Campo1='xxx' OR Campo2='yyy'
??
Alex


Ehm.... ci sono rimasto veramente male...speravo che si potesse fare...
vabbè grazie infinite. Vedrò di risolvere ( come da vs. consiglio) con le
due query.



Io non ti ho mai consigliato di usare due queries: una basta ed avanza.



...Ho visto la query di esempio sul sito comune ma mi sembra che non faccia
al caso mio.
Provo a spiegarmi un pò meglio:
Sullo stesso record di una tabella ho due campi sui quali voglio applicare
un filtro.
La query dovrebbe funzionare così:
riportami il record se il campo1=xxx poi controlla il campo2 se è uguale yyy
riscrivimi il record. Potrebbe capitare che il campo1 =null e il campo2 =yyy
, il record deve essere comunque riportato e viceversa.
Spero di essere stato sufficientemente chiaro.
Grazie ancora.


 Luca
Ammesso e non concesso che ora io abbia capito cosa ti serve, se la tabella
che contiene i dati si chiama Tabella1, prova con una query che abbia il
seguente codice SQL:
SELECT Tabella1.*
FROM Tabella1
WHERE (((campo1)= [Digita il valore di campo1:] Or (campo1) Is Null) AND
((campo2)= [Digita il valore di campo2:] Or (campo2) Is Null));
Si dà comunque per presupposto che xxx e yyy siano sempre significativi e
diversi da Null; se invece possono essere uguali a Null dovresti dire come
si deve comportare la query in quel caso.
