Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema Query con ordinamento per data

    Ho un problema che non so risolvere.
    Ho una tabella dove è presente una data ma a volte questa non è inserita. Il campo si chiama "pubblicata" che è in formato testo

    Devo fare una query che mi esclude le date vuote e lo faccio:
    codice:
    where not pubblicata is null
    Fin qui va bene. Ora devo ordinare i dati estratti per data usando:
    codice:
    order by CDate(pubblicata)
    Qui mi da errore se comunque esiste una data vuota anche se non deve essere considerata.



    Come faccio?

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    forse mi sbaglio...
    prova con
    codice:
    where pubblicata is not null
    EDIT:
    manca anche la condizione di "vuoto" del campo:
    codice:
    where pubblicata is not null and pubblicata >''
    Ultima modifica di Vincent.Zeno; 14-12-2017 a 15:09

  3. #3

  4. #4
    e comunque una CDate() su un campo testo può dare errore (ammesso che tu stia usando Access)

  5. #5
    Vincent.Zeno, ci hai preso.
    Il problema era sul filtro
    Questa query funziona perfettamente
    codice:
    SQL="SELECT * From MyTab where pubblicata is not null and pubblicata >'' order by CDate(pubblicata) DESC"

    Grazie!!
    Ultima modifica di SoloWiFi; 14-12-2017 a 19:15

  6. #6
    quindi problema risolto?

  7. #7
    tutto a posto

  8. #8
    scusate, sono stato poco esplicativo.
    Il problema che avevo non era dovuto all'ordinamento ma all'errata espressione del filtro.
    Inizialmente era espresso
    codice:
    where not pubblicata is null
    oppure
    codice:
    where pubblicata is not null
    Ero convinto che il campo "pubblicata" tipo text potesse essere controllato con "null" anche se vuoto.
    C'è stato bisogno del rafforzamento
    codice:
    and pubblicata >''
    oppure
    codice:
    and not pubblicata=''
    In teoria credo che basterebbe
    codice:
    where not pubblicata=''
    o meglio
    codice:
    where not trim(pubblicata&' ')=''
    Ho aggiunto uno spazio vuoto prima della trim perché a volte un campo di tabella non viene trimmato se non gli si aggiunge (prima o dopo) uno spazio. Per le variabili in memoria questo non accade.
    Ultima modifica di SoloWiFi; 16-12-2017 a 11:31

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