query multiselect

ferdi74

Utente Attivo
2 Ago 2008
47
0
0
ciao a tutti..ho questa difficoltà..( premessa: parlo di asp js e access )
ho creato una form per una ricerca utenti in base al sesso,l'età,lo stato sociale ed una motivazione di presenza..la form invia i valori immessi ad un'altra pagina che interroga il db ed estrae i recordset degli utenti in base al tipo di ricerca..
se escludo l'età ho una query che interroga il db in questo modo è funziona:

Recordset1.Source = "SELECT * FROM utenti WHERE sesso & stato_sociale & qui_per ='"+ sesso.replace(/'/g, "''") + stato_sociale.replace(/'/g, "''") + qui_per.replace(/'/g, "''") +"'";

il problema è l'età..nella form do diverse possibilità di scelta..tipo dai 20 in su..dai 30 in su ecc..e singolarmente non ho problemi facendo una query del genere:

Recordset1.Source = "SELECT * FROM utenti WHERE RIGHT (data_di_nascita,4) < '"+ data_di_nascita.replace(/'/g, "''") + "'";

in modo che in base alle ultime 4cifre(cioè l'anno di nascita ) seleziono una fascia d'età o un'altra..

ma come faccio a fare un'unica query?..ci sto provando così ma mi dice che c'è un'errore di sintassi perchè manca un'operatore..

Recordset1.Source = "SELECT * FROM utenti WHERE RIGHT sesso & stato_sociale & qui_per & (data_di_nascita,4) < ='"+ sesso.replace(/'/g, "''") + stato_sociale.replace(/'/g, "''") + qui_per.replace(/'/g, "''") + data_di_nascita.replace(/'/g, "''") +"'";

qualcuno puo aiutarmi a correggerla?..grazie..:)
 

PoLe

MRW Moderator
6 Giu 2005
2.198
3
0
40
.: Venezia :.
www.bzconsulting.it
Ciao :)

Questo tuo problema è l'esatta dimostrazione del motivo per cui detesto i software WYSIWYG come Dw. Ti creano di quei codici a volte così assurdi, da creare una sacco di problemi di gestione anche fra le cose più semplici.

La differenza che si presenta quando nella ricerca metti anche la data di nascita (da quel che capisco), è che l'anno di nascita, al contrario degli altri valori è un numerico, che quindi per esser concatenato ad una stringa ha bisogno di essere convertito in quest'ultima tipologia di variabile (ovvero string).

Prova a controllare in questa direzione.
Facci sapere!
:byebye:
 

ferdi74

Utente Attivo
2 Ago 2008
47
0
0
ciao mio carissimo salvatore Pole.:)..scusa se ti rispondo un po in ritardo..solo che purtroppo l'unica cosa che so è che il mio campo è di tipo data con formato predefinito gg/mm/aaaa..e non so come fare il test che mi hai chiesto..:-(..ho provato ad impostare il campo di tipo testo ma niente..poi ho provato ( sempre in access ) a dargli un valore predefinito cm stringa ma nn so cm si fa..:-(..ma questo valore stinga che dici bisogna impostarlo in access o in asp?..e in entrambe i casi..saresti così gentile da spiegarmi cm si fa?..scusami e grazie sempre..;-)
 

PoLe

MRW Moderator
6 Giu 2005
2.198
3
0
40
.: Venezia :.
www.bzconsulting.it
ciao mio carissimo salvatore Pole.:)..
..scusami e grazie sempre..;-)
Eh eh, aspetta a ringraziare, prima devi vedere la parcella :D

SCherzi a parte, per confrontare le date devi fare un qualcosa del genere:

SELECT * FROM tabella WHERE campo_data > #valoredata#;

Ovvero la data va messa tra "cancelletti" (#)
Per confrontare la data di nascita, preleva l'anno tramite ASP dalla data inserita dall'utente, e fai una query del genere:

"SELECT * FROM tabella WHERE campo_data >= #01/01/" & valore_anno_data & "# AND campo_data <= #31/12/" & valore_anno_data & "#;"

Poi basta aggiungere a tali condizioni anche quelli già presenti (ce comunque Dw ti struttura in maniera assurda) e sei a posto.

Ps. Ti posto un link dove si spiega come funzionano e si utilizzano NORMALMENTE le SELECT in SQL, giusto per farti capire (paragonandolo) che schifo di codice genera Dw ;)
https://www.mrw.it/sql/guide/select-interrogazione-tabella_192.html
 

ferdi74

Utente Attivo
2 Ago 2008
47
0
0
grazie mio salvatore..:)..scusa se ci ho messo un po a rispondere ma ho sbattuto un bel po la testa tra prove e riprove..
dunque della questione delle date non ci ho capito niente e sono andato al manicomio..
la selct l'ho risolta seguendo il link che mi hai postato ed ho creato questa query che risponde alle mie esigenze..

"SELECT * FROM utenti WHERE sesso & stato_sociale & qui_per = '"+ sesso.replace(/'/g, "''") + stato_sociale.replace(/'/g, "''") + qui_per.replace(/'/g, "''") + "' AND RIGHT (data_di_nascita,4 )< '"+ data_di_nascita.replace(/'/g, "''") +"'";

grande..:)..

ma non ho capito il discorso della data..io qui ho risolto così com'era..cioè di tipo data con formato predefinito gg/mm/aaaa...
( quando imposti il campo nel db cm data il valore è numerico?..e se si cm si converte in stringa nel db stesso o cn quelle query che mi hai postato?)
e poi quegli esempi di query che mi hai postato erano per ricavare l'età?..o per la query multiselct...scusa sn un po confuso..:p..

cmq ho fatto un po di prove con quegli esempi che mi hai postato per cercare di tirar fuori qlcs e capine di più ma niente..
quello che fondamentalmente non ho capito ancora..prima di tutto..come si devono impostare le date nel db?..cm è meglio?..e le differenze tra i valori stringa, o numerico..cioè cm le riconosco cm si presentano fisicamente..e quali conviene usare o meno..:-(..

aiuto...credo che se mi avessi lì mi picchieresti per tutte queste domande..scusami ho ancora tanto tanto da imparare..:p..cmq grazie di tutto intanto la query è risolta..:)..ciaoooo...;-)
 

daviduccio

Moderatore
5 Ago 2004
1.114
0
0
39
Sicilia
www.daviduccio.it
Ancora una volta non l'avrei risolta così.......ho imparato negli anni che non conoscere a fondo gli strumenti utilizzati è un grave problema.

Access è abbastanza potente da fornire funzioni per risolvere una situzione come la corrente. Access infatti è dotato di funzioni di DATA come ASP e quindi può tranquillamente fare una cosa del genere:

"SELECT * FROM tabella WHERE year(campo_data) < " + year(data_nascita)


mi sembra molto + semplice e affidabile come soluzione.... :byebye:
 

ferdi74

Utente Attivo
2 Ago 2008
47
0
0
eh!...anche questa è una bella dritta..grazie..:)...credo che nn smetterò mai di imparare in questo lavoro..;-)...grazie ciaoooo...
 
Discussioni simili
Autore Titolo Forum Risposte Data
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query differenza tra tabelle MySQL 5
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 27
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
M Visualizzazione a video risultati query php PHP 0
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3

Discussioni simili