Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    aiuto su query e ordinamento dati

    ciao, ho una tabella cone questi 2 campi che contengono 2 date (nel 99% dei casi distinte): data1 e data2

    vorrei estrarre i dati da questa tabella in ordine per data MA se data 2 != NULL usa data 2 altrimenti usa data1. in pratica dovrei incrociare i data 1 e data 2 e stilare una lista discendente. se data 2 è settato usare quel valore, altrimenti usare data1

    esempio con 2 tuple:
    codice:
    -------------------------
        data1  |   data2     |
    --------------------------
    2015-01-01 |  NULL       |
    --------------------------
    2015-01-02 | 2015-01-10  |
    --------------------------
    stampa in ordine discendente:

    2015-01-10
    2015-01-01

    Uso mySql.
    non ho idea di come fare
    grazie,
    L.
    Ultima modifica di leaf; 05-01-2015 a 15:25

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Cosi.

    Codice PHP:
    SELECT CASE WHEN DATA2 IS NULL THEN DATA1 ELSE DATA2 END AS MY_DATE
    FROM TABELLA
    ORDER BY MY_DATE 
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    che figo! non sapevo nemmeno esistesse questa cosa! grazie, ora provo

  4. #4
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ok, ho trovato un po' di documentazione in giro..ho visto anche che c'è l'if/else..ma è possibile integrare il codice in questa query?
    nel senso che, all'interno di * ci saranno entrambi i campi data1 e data2..vorrei dirgli quindi che dentro a * deve controllare se data 2 è != NULL oppure no e decidere quale prendere. oppure posso fare una scrematura con un'altra query, selezionando solo i valori per cui data2 è 1= NULL?

    codice:
    SELECT *
    FROM tabella
    WHERE anno = $year
    AND categoria = $cat
    ORDER BY MY_DATE DESC"
    grazie
    L.

    edit..ho risolto da solo banalmente facendo così:

    codice:
    SELECT *, CASE WHEN data1 != '0000-00-00' THEN data1 ELSE data2 END AS MY_DATE
    FROM tabella
    WHERE anno = $year
    AND categoria = $cat
    ORDER BY MY_DATE DESC
    grazie di nuovo!
    L.
    Ultima modifica di leaf; 05-01-2015 a 22:53

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Devi elencare i campi da usare. L'* è solo un escamotage per listare tutti i campi.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.