Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Query su data inizio e data fine

    Buona settimana a tutti.

    Succede una cosa strana con una query SELECT:

    codice:
       strSQL = " SELECT * FROM "
       strSQL = strSQL & " tabella_completa "
       strSQL = strSQL & " WHERE "
       strSQL = strSQL & " Nome "
       strSQL = strSQL & " NOT IN "
       strSQL = strSQL & " ( "
       strSQL = strSQL & " SELECT "
       strSQL = strSQL & " Nome  "
       strSQL = strSQL & " FROM  "
       strSQL = strSQL & " tabella_nomi "
       strSQL = strSQL & " WHERE "
       strSQL = strSQL & " ( "
       strSQL = strSQL & " DataInizio <> '" & Date() & "' "
       strSQL = strSQL & " AND "
       strSQL = strSQL & " DataFine <> '" & Date() & "' "
       strSQL = strSQL & " ) "
       strSQL = strSQL & " ) "
       strSQL = strSQL & " ORDER BY "
       strSQL = strSQL & " Nome ASC "
    Nella tabella_nomi DataInizio e DataFine hanno entrambe valore 23/02/2008, perchè non estrae il record ???

    Grazie-
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    La subselect lo estrae sicuramente, ma poi nella select principale hai scritto "where nome NOT IN...." quindi lo esclude....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da kalosjo
    La subselect lo estrae sicuramente, ma poi nella select principale hai scritto "where nome NOT IN...." quindi lo esclude....
    Scusa non ho capito, cosa devo cambiare nella query ?
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  4. #4
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da kalosjo
    La subselect lo estrae sicuramente, ma poi nella select principale hai scritto "where nome NOT IN...." quindi lo esclude....
    Scusa tanto ma non è cosi.

    Eseguendo così la query :

    codice:
       
       strSQL = " SELECT * FROM "
       strSQL = strSQL & " tabella_nomi "
       strSQL = strSQL & " WHERE "
       strSQL = strSQL & " ( "
       strSQL = strSQL & " DataInizio <> '" & Date() & "' "
       strSQL = strSQL & " AND "
       strSQL = strSQL & " DataFine <> '" & Date() & "' "
       strSQL = strSQL & " ) "
       strSQL = strSQL & " ORDER BY "
       strSQL = strSQL & " Nome ASC "
    Non estrae niente lo stesso....
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  5. #5
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    che database è?
    Access?

    Devi vedere se inverte giorno e mese in formato americano.

    Se è così è per questo che non esce...
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  6. #6
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da kalosjo
    che database è?
    Access?

    Devi vedere se inverte giorno e mese in formato americano.

    Se è così è per questo che non esce...
    Il db è mysql, la data è nel formato aaaa-mm-gg

    Ho riscritto la query così:

    codice:
       strSQL = " SELECT * FROM "
       strSQL = strSQL & " tabella_nomi "
       strSQL = strSQL & " WHERE "
       strSQL = strSQL & " ( "
       strSQL = strSQL & " DataInizio <> '" & Date() & "' "
       strSQL = strSQL & " AND "
       strSQL = strSQL & " DataFine <> '" & Date() & "' "
       strSQL = strSQL & " ) "
       strSQL = strSQL & " GROUP BY "
       strSQL = strSQL & " Nome ASC "
       strSQL = strSQL & " ORDER BY "
       strSQL = strSQL & " Nome ASC "
    Ed estrae correttamente il record e fino qui ci siamo.

    Ma il problema è che la tabella_nomi si popola con i dati presi dalla tabella_completa.

    Devo controllare con una query che nella tabella_nomi esista già un record che sia uguale al corrispondente record di tabella_completa ed escluderlo dall'estrazione.

    Pensavo che con una subquery fosse possibile...
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  7. #7
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Se il db è MySql la query potrebbe non funzionare, infati il format della data è proprio YYYY-MM-YY, quindi con date() non funziona, devi formattarlo in quel modo.

    in ogni caso con la subquery dovrebbe funzionare...
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  8. #8
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da kalosjo
    Se il db è MySql la query potrebbe non funzionare, infati il format della data è proprio YYYY-MM-YY, quindi con date() non funziona, devi formattarlo in quel modo.

    in ogni caso con la subquery dovrebbe funzionare...
    Appena inserisco la subquery non estrae più correttamente, cioè mi esclude i record con :

    codice:
       
       strSQL = strSQL & " DataInizio <> '" & Date() & "' "
       strSQL = strSQL & " AND "
       strSQL = strSQL & " DataFine <> '" & Date() & "' "
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  9. #9
    *subito* dopo la composizione della stringa SQL metti

    Response.Write "maGGica SQL...: " & strSQL
    Response.Flush

    poi posta quello che viene a video

  10. #10
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    maGGica SQL...: SELECT * FROM tabella_completa WHERE Nome NOT IN ( SELECT Nome FROM tabella_nomi WHERE ( DataInizio <> '25/02/2008' AND DataFine <> '25/02/2008' ) ) ORDER BY Nome ASC
    Ecco la stampa, grazie.
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

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 © 2026 vBulletin Solutions, Inc. All rights reserved.