Newsgroup: it.comp.appl.access
Titolo: Query su due campi

Salve a tutti, mi trovo in difficoltà con una query che dovrebbe prendere un
range di dati da due colonne contigue:
SELECT * FROM Budget WHERE PeriodoDa >=#data# AND PeriodoA <= #data#
In questo modo non funziona perché non effettua il confronto sui dati dello
stesso campo. Occorre forse fare una join ? Ed in che modo ? Grazie a tutti.
Stefano
--------------------------------
Inviato via 
http://usenet.libero.it

 stesso campo. Occorre forse fare una join ? Ed in che modo ? Grazie a
tutti.
I join si fanno su due tabelle!
Potresti spiegare cosa vuoi fare, senzxa dire come l'hai fatto?
Mi pare tutto giusto, c'hai un campo da e un campo a e vuoi confrontare una
data particolare con essi.
Hai scritto bene la data? Da dove la prendi? se scrivi via codice devi usare
il formato americano!
Antonio

 il formato americano!
La data è correttamente formattata da una pagina ASP, non è quello il
problema:infatti se provo a fare una query sul campo singolo (PeriodoDa
oppure PeriodoA) funziona perfettamente. Ma, ripeto, devo trovare un range
di record mettendo insieme PeriodoDa >= data e PeriodoA <=. Grazie.


 di record mettendo insieme PeriodoDa >= data e PeriodoA <=. Grazie.
Va beh, ma allora perchè dovrebbe lavorare sullo stesso campo? Il controllo
che hai scritto in AND sui due campi è corretto!!!
Antonio

 Stefano
Ciao Stefano
Forse è meglio che ci fai vedere un esempio di dati a disposizione e del
risultato che vuoi ottenere come per esempio
Dati
------------------------
Data = 18/01/2003
PeriodoDa   PeriodoA
-----------  -----------
15/01/2003 15/02/2003
20/01/2003 15/02/2003
Risultato desiderato
-----------------------
PeriodoDa   PeriodoA
-----------  -----------
xx/xx/xxxx   xx/xx/xxxx
yy/yy/yyyy   yy/yy/yyyy
Sono molto curioso e non riesco a capire il tuo problema
Ciao Giorigo.

 Ciao Giorigo.
Ok provo a spiegarmi meglio:
Tabella Budget:
-------------------------------------------------
CodAff PeriodoDa PeriodoA Fatturato Punti
   1 01/07/2000 15/06/2001 1500.00 150
   2 20/06/2002 15/09/2003 2000.00 200
   3 01/10/2003 31/12/2003 5000.00 500
Ecco, voglio tutti i record che vanno dal periodo 01/03/2002 al 31/12/2003:
dovrebbe tirarmi fuori il secondo ed il terzo in ordine di data. Ok ?


 stesso campo.
Quale "stesso campo"?
Io vedo due campi.
Non ti funziona nel senso che non vedi record che dovresti vedere o nel
senso che vedi record che pensavi venissero esclusi?
Sib

 ha scritto nel messaggio
news:212Z131Z182Z2Y...@usenet.libero.it...

(...) where PeriodoDa>=#2002-03-01# and PeriodoA<=#2003-12-31#

 ha scritto nel messaggio
news:212Z131Z182Z2Y...@usenet.libero.it...

Ciao Stefano
Ok.
In questo caso la comparazione va effettuata su due valori di data e non su
uno solo come da tuo esempio quindi ....
------------
SELECT *
FROM Budget
WHERE PeriodoDa >=#Dadata# AND PeriodoA <= #Adata#
ORDER BY PeriodoDa
-------------
Ovvero
-------------
SELECT *
FROM Budget
WHERE Date.PeriodoDA>=#3/1/2002#
             AND Date.PeriodoA<=#12/31/2003#
ORDER BY PeriodoDa
------------
Oppure la domanda č un'altra ?
Avendo una data es. 01/06/2003 in quali record questa data č compresa
nell'intervallo tra PeriodoDa  e PeriodoA ?
In questo caso
--------------
SELECT *
FROM Budget
WHERE Budget.PeriodoDA>=#6/1/2003#
              OR #6/1/2003#<=[PeriodoA]
---------------
Spero di aver capito
Ciao Giorgio.


Scusa la domanda è errata in quanto non soddisferebbe il risultato
desiderato ( la query però è giusta)
Avendo una data es. 01/06/2003 in quali record questa data è maggiore o
uguale di PeriodoDa  o minore o uguale di PeriodoA ?
Ciao Giorgio

 Ciao Giorgio
E' esattamente come l'hai risolta tu, grazie mille Giorgio !
Stefano
