Newsgroup: it.comp.appl.access
Titolo: Scusate posto qui perche non riesco a rispondere con google al mio precedente post

Buongiorno,
Ho una tabella ACCESS cosi composta
InizioCen = data
FineCen = data
InizioEst = data
FineEst = data
InizioBor = data
FineBor = data
ad esempio
iniziocen   FineCen     InizioEst   FineEst    InizioBor   FineBor
12/01/2004  NuLL        14/02/2005  15/02/2005 13/01/2005  NULL
13/01/2004  13/02/2004  NULL        NULL       15/02/2005  16/02/2005
Diciamo che io voglio avere un recordset che comprenda le date  comprese tra
inizioCen    fineEst
13/01/2004 e 15/02/2004
oppure
iniziocen    FineBor
12/01/2004 e 16/02/2005
...
Che cosa devo scrivere??
SELECT ?????
Qualcuno sa suggerirmi come fare per favore??

 ...
______________________________________________
SELECT * FROM NomeTabella
WHERE ((InizioCen>=#13/01/2004#) AND (fineEst<=#15/02/2004))
OR ((InizioCen>=#12/01/2004#) AND (FineBor<=#16/02/2004))
ciao
Riccardo 

 12/01/2004 e 16/02/2005
Scusa se insisto ma non è chiaro cosa intendi.
Partendo dai dati di esempio da te indicati, devo dedurre che la query deve
ritornare entrambi i records (il primo perchè soddisfa il secondo criterio
ed il secondo perchè soddisfa il primo criterio)?
Oppure il criterio è unico e vuoi indifferentemente applicarlo a una
qualsiasi delle tre coppie?
Inoltre dovresti specificare come vorresti fossero essere interpretati i
campi NULL: sempre e comunque compresi?
Alessandro

 Riccardo
Ciao 
grazie per il tuo aiuto,,
Non mi sono spiegato..
Io ho una tabella con diverse date di inizio e diverse date di fine
tra queste ogni volta devo selezionare un recordset di date compreso
tra due valori variabili che cambiano di volta in volta qualcuno sa
come fare??

 ha scritto nel messaggio 
news:eae98816.05020...@posting.google.com...

le date le inserisci da una maschera?
se cosě fosse
SELECT * FROM NomeTabella
WHERE ((InizioCen>= Forms![NomeMaschera]![NomeControllo]) AND (fineEst<= 
Forms![NomeMaschera]![NomeControllo]))
OR ((InizioCen>=Forms![NomeMaschera]![NomeControllo]) AND 
(FineBor<=Forms![NomeMaschera]![NomeControllo]))
dove in nomecontrollo inserisci i nomi dei filtri per ogni tipologia di 
data.
ciao
Riccardo

 Riccardo
No non le inserisco da una maschera si tratta di una semplice query
sono valori inseriti da due variabili @datainizio e @datafine,
Scusa ma questi OR non creano un ciclo che si interrompe appena viene
trovato un valore coerente in un record?
E se io ci fossero valori coerenti in un campo successivo??
Grazie per il tuo aito

=[inizioCen]
nel campo DataFine hai
<=[FineBor]
se hai fatto cosě, quando apri la query ti si aprono quattro maschere che ti
chiedono le date che hai inserito sopra (tra le radici quadre).
ma secondo me, la cosa migliore  e che ti crei una maschera con 4 caselle 
dove inserire
le date, nella query anzichč scrivere >=[inizioCen] scriverai 
 >=Forms![NomeMaschera]![inizioCen]
e cosě via, e poi con un pulsante da maschera ti apri la query.

Accidenti non ci capiamo proprio :(
Ed io non so dove sbattere la testa :((

...


 interpretati i campi NULL: sempre e comunque compresi?
Per maggior sicurezza, un ulteriore esempio/quesito. Dati i seguenti tre
records:
iniziocen        FineCen      InizioEst      FineEst        InizioBor
FineBor
12/01/2004  13/01/2004 11/01/2005 15/01/2005 13/01/2005 14/01/2005
10/01/2004  14/01/2004 12/01/2005 13/01/2005 14/03/2005 15/03/2005
13/01/2004  14/01/2004 14/03/2005 15/03/2005 12/01/2005 13/01/2005
Supponiamo i seguenti casi:
1) datainizio=12/01/2005, datafine=14/01/2005
2) datainizio=11/01/2004, datafine=14/01/2005
3) datainizio=12/01/2005, datafine=14/01/2005
Quali dati deve ritornare la query E SOPRATTUTTO PERCHE'? In altre parole
quale logica deve essere applicata ad ogni singolo record per determinare se
il record dev'essere compreso e che informazioni ti deve resituire?
Alessandro

...


 Alessandro
per il primo caso devono essere restituiti i seguenti records
13/01/2005 
14/01/2005
12/01/2005 
13/01/2005
Per il secondo i seguenti
13/01/2004  
14/01/2004
12/01/2005 
13/01/2005 
terzo
12/01/2005 
13/01/2005
12/01/2005 
13/01/2005
Il problema è questo..
Immagina un centro che eroga diversi servizi;
il database registra la data di inizio e di fine di ciascuno di questi
servizi
(Che possono essere erogati allo stesso utente in doversi periodo di
tempo)
la domanda che mi è stata posta è la seguente contare quanti utenti
singoli ci sono in un determinato periodo di tempo
Io ho scritto la select
select count (*) in 
(select distinct Nome, Cognome, in (
Select * from nometabella  XXX Qui non so estrarre il recordset delle
date ***)
)
Spero di essere stato chiaro..
La tua domanda cmq era formulata in maniera chiara..
Ti prego se ti è possibile di rispondermi :)
Grazie Grazie

 singoli ci sono in un determinato periodo di tempo
Domanda mal formulata: quanti utenti per servizio o indipendentemente dal
servizio? "Ci sono" dove?
Prova a postare la struttura COMPLETA della/e tabella/e. In particolare:
- il nome della/e tabella/e (e, se più di una, attraverso quale/i campo/i
sono tra loro relazionate)
- il nome del campo che identifica l'utente
- il nome del campo che identifica il servizio
- come viene associato un utente ad un servizio in un determinato periodo di
tempo
Il sospetto è che ci sia un problema nel disegno della base dati: comunque
senza tutte queste informazioni non credo sia possibile aiutarti
ulteriormente.
Alessandro

...

mmm
Se vuoi ti spedisco la base di dati e mi fai una modifica del design
che risponda alle richieste del commitente?
Cmq si tratta di questo inserisco due date e devo estrare tutti i
record compreso tra quelle due date il problema è che esistono molti
campi che contegono date di inizio o date di fine..
mmm