96 messaggi dal 05 maggio 2002
Ciao a tutti!
Ho un problema, per me, un po' complicato:

in una tebella ho i seguenti campi:

id
nome
data
stato

id è chiave primaria, nel campo nome puo' esserci lo stesso nominativo ripetuto, nel campo data puo' esserci un valore ripetuto.
Inserisco un record:

id = 1
nome = pippo
data = 29/04/2003
stato = valore1

inserisco un altro record:

id = 2
nome = pippo
data = 29/04/2003
stato = valore2

e cosi via..
Il mio problema è il campo "stato".
Il campo "stato" puo' assumere 5 valori: valore1, valore2, valore3, valore4, valore5.

Io vorrei creare una query che mi visualizzi tutti quei nomi che hanno come campo stato = valore1, e che hanno il campo data più recente
come faccio a selezionare la data più recente, rispetto a quella che io inserisco in un form di ricerca?
Lo so che sono molto complicato a spiegarmi, ma non sono riuscito a fare di meglio...





lo scoppato:)
196 messaggi dal 21 febbraio 2002
ehm... se non ho capito male quello che volevi dire...

Select * from nome-tabella where stato=valore1 order by data

Intendevi questo ??

81 messaggi dal 11 luglio 2002
"order by data ASC" così che compaiano in ordine descrescente dal più recente al più vecchio!
96 messaggi dal 05 maggio 2002
il problema sta' nel fatto che vorrei visualizzare i risultati della query, cercando una data e visualizzando quel record che ha la data più recente rispetto alla data di ricerca, che abbia il valore1 del campo stato, se un'altro record ha valore2 nello stesso campo stato.
I due recor o gli n record che devono soddisfare la query possono anche essere duplicati nel campo 'nome' e nel campo 'data'.

saro' riuscito a spiegarmi...

lo scoppato:)
196 messaggi dal 21 febbraio 2002
Riuscirò a capirti ?? ;)))

data_inserita=request("data")
Select * from nome-tabella where stato=valore1 and data>=data_inserita and data<=now() order by data ASC

Ovvero tutte le date comprese frà ciò che l'utente ha inserito e oggi

86 messaggi dal 02 ottobre 2001
Per ordinare le date in modo decrescente la clausola ORDER dovrebbe essere DESC e non ASC.

gino
96 messaggi dal 05 maggio 2002
Sono d'accordo su quanto indicava alis69, e cioè:

data_inserita=request("data")
Select * from nome-tabella where stato=valore1 and data>=data_inserita and data<=now() order by data ASC

questa query mi darà un risultato, ma immaginiamo che all'interno ci siano record che avranno lo stesso valore nel campo nome:

nome = pippo

ma che ciscuno abbia valori diversi nel campo stato.
detto questo, io devo estrarre solo quei nomi che hanno il campo stato uguale a "valore1" e in più, che abbiano il valore del campo data più vicino all'estremo "destro" dell'intervallo di date che indico nella ricerca, cioè: se data1 = 01/04/2003 e data2 = 30/04/2003, il record (o i record) estratto/i devono essere più vicino al 30/04/2003.

questa volta saro' risuscito a parlare italiano?
lo spero, non ero una cima a scuola quando facevo un tema!!!!


lo scoppato:)
196 messaggi dal 21 febbraio 2002
Ok... credo (Spero!) di aver capito..



data_inserita=request("data")

Set Rs=Conn.execute("Select * from nome-tabella where stato=valore1 and data>=data_inserita and data<=now() order by data DeSC")

Riferimento=""
do while not rs.eof

if riferimento<>Rs("Nome") then
riferimento=Rs("Nome")
response.write("<br>"+Rs("Nome")+" ")
response.write(rs("data"))

end if

rs.movenext
loop


L'ho messa giù al volo.. probabilmente si può far meglio
questo ti estrae solo UN SINGOLO nome (quello che ha la data più vicina a... oggi) e che ha stato=Valore1

;)

Modificato da alis69 il 30 aprile 2003 09.53 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.