Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    Select: paragone con data ricavata da campo testo

    Ciao a tutti. Ho una select che proprio non riesco a far fuznionare, ma che non dovrebbe essere troppo complicata.
    Il problrma (e l'errore) nasce nel fatto che devo paragonare la datat attuale conuna data che mi devo ricavare da parte di un campo testo.

    Il campo testo in questione contiene un frase del tipo

    "bla bla bla bla 10/10/2006(spazio)(spazio)(spazio)(spazio)(spazio)(spazi o)(spazio)(spazio)"

    Poi ci cono altre condizioni che non danno problemi. Ho provato nel modo seguente:

    OGGI=DATE()
    DUE="2"
    sqlM= "SELECT * FROM TABELLA where ECCDST="&PARAMETROCONTROLLATO&" and ECINDI="&DUE&" AND ECDES1='TESTO' AND ((RIGHT((LEFT(ECDES2,LEN(ECDES2)-10)),8))=>OGGI"

    il campo che contiene la frase incriminata ècome si vede ECDES2.
    Qualcuno sa darmi una mano a sbrigliare questa select?
    Grazie

  2. #2

    Re: Select: paragone con data ricavata da campo testo

    Originariamente inviato da gim
    Ciao a tutti. Ho una select che proprio non riesco a far fuznionare, ma che non dovrebbe essere troppo complicata.
    Il problrma (e l'errore) nasce nel fatto che devo paragonare la datat attuale conuna data che mi devo ricavare da parte di un campo testo.

    Il campo testo in questione contiene un frase del tipo

    "bla bla bla bla 10/10/2006(spazio)(spazio)(spazio)(spazio)(spazio)(spazi o)(spazio)(spazio)"

    Poi ci cono altre condizioni che non danno problemi. Ho provato nel modo seguente:

    OGGI=DATE()
    DUE="2"
    sqlM= "SELECT * FROM TABELLA where ECCDST="&PARAMETROCONTROLLATO&" and ECINDI="&DUE&" AND ECDES1='TESTO' AND ((RIGHT((LEFT(ECDES2,LEN(ECDES2)-10)),8))=>OGGI"

    il campo che contiene la frase incriminata ècome si vede ECDES2.
    Qualcuno sa darmi una mano a sbrigliare questa select?
    Grazie
    Che errore ti da?

    Hai controllato che dati estrai con questo?
    codice:
    (RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8)
    P.S.: Anche a me la parentesi piacciono e sono dell'idea che più ce n'è meglio è, ma se sono proprio inutili puoi toglierle, si legge meglio
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  3. #3
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Ciao.
    L'errore èquesto ed è certamente in 8poichè togliendolo non dà errorre):

    (RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8)

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression

    Ho ricontrollato le parentesi che così dovrebbero essere esatte, ma l'errore insiste.
    Ora provo a far stampare (RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8).

  4. #4
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Allora, in effetti avevi ragione il problema stava proprio nel valore di (RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8) che stampava gg/mm/aa paragonandolo con gg/mm/aaaa e qui andava in errore. Ho anteposto cdate ed ora forse funziona, solo che mi dà un altro errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
    [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

    Ho provato a mettere i #, apici doppi apici % ecc, ma continua a darmi errore.
    Hai qualche suggerimento?

  5. #5
    prova
    codice:
    cdate((RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8))
    and ......>=#" & oggi & "#"

  6. #6
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Ciao. In effetti avevo hià messo sia cdate che il # nella formula indicata ma continua a darmi errore; ma forse ho capito il problema: il contenuto del campo non è detto che sia sempre in quella strattura, ma può contenere anzhe un qualunque altro valore; quindi capita probabilemnte che mi va a paragonare

    cdate(blablabla)=>01/01/2000 e va in errore.

    In effetti io, quei campi che hanno un valore diverso dal formato trasformabiel in dtaa potrei anche non prenderli.

    Come potrei fare?

    La logica sarebbe
    if (RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8)<> dal formato data
    non prendere il record o qualcoa del genere.
    Ma come poterlo applicare alla select?

  7. #7
    Originariamente inviato da gim
    Ciao. In effetti avevo hià messo sia cdate che il # nella formula indicata ma continua a darmi errore; ma forse ho capito il problema: il contenuto del campo non è detto che sia sempre in quella strattura, ma può contenere anzhe un qualunque altro valore; quindi capita probabilemnte che mi va a paragonare

    cdate(blablabla)=>01/01/2000 e va in errore.

    In effetti io, quei campi che hanno un valore diverso dal formato trasformabiel in dtaa potrei anche non prenderli.

    Come potrei fare?

    La logica sarebbe
    if (RIGHT(LEFT(ECDES2,LEN(ECDES2)-10),8)<> dal formato data
    non prendere il record o qualcoa del genere.
    Ma come poterlo applicare alla select?
    cambia la struttura di dati e tira fuori la data da quel campo

  8. #8
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Cioè intendi dire, tolgo quella condizione dalla select e faccio un rs("di qualle data"), lo tradformo e lo gestisco?
    Se si, è l'unico modo?
    Chiedo questo perchè ho bisogno di escludere dalla select tutti i valori precedenti ad oggi, anche per evitare un'interrogazione su migliaia di dati.

  9. #9
    Originariamente inviato da gim
    Cioè intendi dire, tolgo quella condizione dalla select e faccio un rs("di qualle data"), lo tradformo e lo gestisco?
    Se si, è l'unico modo?
    Chiedo questo perchè ho bisogno di escludere dalla select tutti i valori precedenti ad oggi, anche per evitare un'interrogazione su migliaia di dati.
    ma puoi, secondo te, gestire questa cosa su un campo di testo in cui la data, se presente, non è neanche presente nello stesso punto?? aggiungi un campo alla tabella e mettici la data estrapolandola da quel testo e poi la query la fai usando quel campo...altrimenti non so se le stored procedure possano fare al caso tuo

  10. #10
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Ciao e grazie. Putroppo non posso modificare il database e aggiungere o modificare campi.
    Con le store procedure cosa potrei provare?
    Nel frattempo faccio una ricerca.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.