Pagina 1 di 1

Query SQL che non funge... uff..

MessaggioInviato: 12 set 2006, 13:03
di tonertemplum
Ho una maschera da cui da un menu a tendina scelgo:
1-il nome della teleseller
2-il mese in cui è stato preso
3-scelgo se vedere gli appuntamenti di un fornitore mettendolo SI o NO
4-scelgo se vedere gli appuntamenti di un altro fornitore mettendolo SI o NO

Questo è il codice della pagina asp che mi restituisce la tabella con la query sql creata

Codice: Seleziona tutto
teleseller=request.Form("teleseller")
mesepreso=request.form("mesepreso")
appuntamento3=request.Form("appuntamento3")
appuntamentoedison=request.Form("appuntamentoedison")
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("/mdb-database/appuntamenti.mdb")


sql = " select * from appuntamenti where teleseller like '%"&teleseller&"%' and mesepreso like '%"&mesepreso&"%' and appuntamento3 like '%"&appuntamento3&"%' and appuntamentoedison like '%"&appuntamentoedison&"%' ORDER BY giorno, mese, cap, ora, minuti"


Se nella maschera di selezione per appuntamento3 metto SI e appuntamentoedison NO (o viceversa) la query funge ottimamente....
Se metto entrambi su SI..... mi trova 0 risultati....., non è un grosso dramma, perchè a mente mi memorizzo il primo risultato, poi faccio il secondo e poi me li sommo a mente... ma se volessi vederli tutti....

Spero di essere stato chiaro...

Chi mi può helpare? Se avete bisogno di maggiori informazioni chiedete pure....

MessaggioInviato: 12 set 2006, 13:15
di thrantir
credo che non funzioni perche' devi mettere un or al posto di un and, cosi' a naso e senza andare a vedere bene...

mi dici bene cosa vogliono dire i campi della tabella che sui nella query?

MessaggioInviato: 12 set 2006, 14:09
di tonertemplum
per or intendi tra

appuntamento3 like ..... OR appuntamentoedison like..... ?

I campi sono cosi

teleseller = nome della teleseller, nella forma nome_cognome

mesepreso = mese in cui l'appuntamento è stato preso, Settembre ad esempio

appuntamento3 = duevalori possibili, SI oppure NO (a seconda se l'appuntamento è stato preso perchè interessato a questo servizio)

appuntamentoedison = come appuntamento 3

per ogni ID del mio db in access dove avrò appuntamento3 = SI avrò apuntamentoedison = NO, e viceversa....

Ora cmq provo con or......

MessaggioInviato: 12 set 2006, 14:12
di tonertemplum
niente, mettendo OR laddove dicevo prima mi invalida praticamente tutta la query... addirittura scegliendo come mese settembre mi fa vedere *tutti* gli appuntamenti, compresi quelli di gennaio, sia appuntamento3=SI che appuntamentoedison = SI.... :(

dimenticavo, cmq grazie fin d'ora! :D

MessaggioInviato: 12 set 2006, 14:56
di thrantir
allora, due domande per capire meglio:

1 - Hai accesso al db? Se si, controlli se ci sono record in cui entrambi i valori appuntamento3 e appuntamentoedison sinao SI?

2 - Mi dici in linguagigo naturale che significato dai alla query?

MessaggioInviato: 12 set 2006, 15:09
di tonertemplum
ho accesso pieno al Database, e sono sicuro che se uno è SI l'altro è NO... :D perchè metti un esempio

4 appuntamenti del mese di settembre

2 sono appuntamento3 = SI appuntamentoedison = NO
2 sono il contrario

se cerco solo uno o l'altro li vedo correttamente, se nella maschera di ricerca cerco sia appuntamento3 = SI che appuntamentoedison = SI allora non mi trova nulla......

il significato naturale?

fammi vedere tutti gli appuntamenti che trovi nel db che siano della teleseller presa dal form, presi nel mese che ti dico io, che appuntamento3 e appuntamentoedison siano o SI o NO a seconda di come te lo dico e ordinameli......... cmq ti ho mandato un pm.... :D

MessaggioInviato: 12 set 2006, 15:14
di thrantir
allora, appurato che:

ho accesso pieno al Database, e sono sicuro che se uno è SI l'altro è NO


e' chiaro che se tu chiedi (la query che hai messo all'inizio) tutti gli appuntamenti in cui sia SI un campo e SI l'altro campo, il risultato e' vuoto. La mia modifica, con l'or al posto dell'and, ti da tutti gli appuntamenti che siano o di un tipo o di un altro

il significato naturale non e' tanto... naturale :P

e' naturale nella pirma parte, il fatto che l'appuntamento debba essere della teleseller selezionata, ma non traspare il significato dei campi... immagina che il db sia un archivio e che io sia il tuo archivista, e fammi una domanda a cui io possa rispondere :wink:

MessaggioInviato: 12 set 2006, 15:16
di tonertemplum
thrantir, ti ho fatto un pm, dandoti pieno accesso alla piattaforma.........

MessaggioInviato: 12 set 2006, 15:22
di thrantir
ho visto, e ti ho risposto :wink:

allora, me la fai questa query verbale come se fossi il tuo archivista? :P

MessaggioInviato: 12 set 2006, 15:24
di tonertemplum
c'è stata una incomprensione.....

hai ragione, la query funziona perfettamente, perchè non ci sono appuntamenti che siano entrambi su SI....

hai quindi capito perfettamente il comportamento....

Ma allora ti chiedo, se io volessi vedere sia quelli in cui

appuntamento3= SI
appuntamentoedison = NO

che quelli

appuntamento3= NO
appuntamentoedison = SI

tutti in una sola tabella?

MessaggioInviato: 12 set 2006, 15:33
di tonertemplum
ti ho aggiunto su msn come da pvt :D

MessaggioInviato: 12 set 2006, 16:34
di tonertemplum
risolto................

che dire... thrantir, ti ringrazio pubblicamente! :D

MessaggioInviato: 12 set 2006, 16:43
di thrantir
e' stato un piacere :D

ogni tanto riesco ancora a dare qualche buon consiglio :wink: