Visualizzazione dei risultati da 1 a 7 su 7

Discussione: ORDER By Datediff

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359

    ORDER By Datediff

    Ciao a tutti, oggi sono alle prese con un nuovo problema.
    Ho questo codice:
    codice:
    DataAttuale = date()
    Recordset7.Source = "SELECT DataConvocazione, Categoria, Avversario, LuogoRitrovo, LuogoPartita, OraRitrovo, OraPartita, Accompagnatore, Ufficiale, Medico, Massaggiatore, Allenatore, Sezione, Numero FROM T_Convocazioni"&session("StagioneAttuale")&" GROUP BY DataConvocazione, Categoria, Avversario, LuogoRitrovo, LuogoPartita, OraRitrovo, OraPartita, Accompagnatore, Ufficiale, Medico, Massaggiatore, Allenatore, Sezione, Numero order by DateDiff('d',DataAttuale, DataConvocazione)<=0"
    Io vorrei che i risultati fossero ordinati dalla data di convocazione che corrisponde a quella attuale, se presente, fino alla più lontana, ma ricevo un'errore.
    La data di convocazione nella tabella access è gg/mm/aaaa
    Sapete dirmi dov'è lo sbaglio?
    grazie
    Chi Crede in Me non Perirà MAI

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    588
    Quote Originariamente inviata da devil946 Visualizza il messaggio
    Ciao a tutti, oggi sono alle prese con un nuovo problema.
    Ho questo codice:
    codice:
    DataAttuale = date()
    Recordset7.Source = "SELECT DataConvocazione, Categoria, Avversario, LuogoRitrovo, LuogoPartita, OraRitrovo, OraPartita, Accompagnatore, Ufficiale, Medico, Massaggiatore, Allenatore, Sezione, Numero FROM T_Convocazioni"&session("StagioneAttuale")&" GROUP BY DataConvocazione, Categoria, Avversario, LuogoRitrovo, LuogoPartita, OraRitrovo, OraPartita, Accompagnatore, Ufficiale, Medico, Massaggiatore, Allenatore, Sezione, Numero order by DateDiff('d',DataAttuale, DataConvocazione)<=0"
    Io vorrei che i risultati fossero ordinati dalla data di convocazione che corrisponde a quella attuale, se presente, fino alla più lontana, ma ricevo un'errore.
    La data di convocazione nella tabella access è gg/mm/aaaa
    Sapete dirmi dov'è lo sbaglio?
    grazie
    order by deve essere "ASC" o "DSC" non <=0...

    ASC = ascendente e DSC discendente...
    poi non capisco la funzione order by su che campo la imposti... li vedo un risultato datediff...che significa?
    Ultima modifica di vic53; 26-09-2017 a 22:01
    Vic53

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    Ciao Vic grazie della risposta, lo so che un order deve essere asc o desc, ma ho voluto tentare, ma come vedi con pessimi risultati.
    Il risultato che vorrei ottenere è quello di estrapolare tutti i valori dalla tabella ma far si che siano visualizzati nella pagina corrente solamente quelli dalla data di oggi in avanti, mentre quelli passati in una pagina separata.
    Grazie
    Chi Crede in Me non Perirà MAI

  4. #4
    se la visualizzazione è su due pagine io farei due interrogazioni

  5. #5
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    588
    Quote Originariamente inviata da devil946 Visualizza il messaggio
    Ciao Vic grazie della risposta, lo so che un order deve essere asc o desc, ma ho voluto tentare, ma come vedi con pessimi risultati.
    Il risultato che vorrei ottenere è quello di estrapolare tutti i valori dalla tabella ma far si che siano visualizzati nella pagina corrente solamente quelli dalla data di oggi in avanti, mentre quelli passati in una pagina separata.
    Grazie
    ok la SQL dovrebbe usare la claudsola Where tipo il codice che ti posto...
    codice:
    dataodierna=right("00"&month(date),2)&"/"&right("00"&day(date)&"/"&year(date)
    
    SQL="SELECT DataConvocazione, Categoria, Avversario, LuogoRitrovo, LuogoPartita, OraRitrovo, OraPartita, Accompagnatore, Ufficiale, Medico, Massaggiatore, Allenatore, Sezione, Numero FROM T_Convocazioni"&session("StagioneAttuale")&" GROUP BY DataConvocazione WHERE DataConvocazione >= #" & dataodierna &"# order by DataConvocazione ASC" 
    Recordset7.Source = SQL...
    il formato dalla data in ricerca è #mese/giorno/anno# come ti ho costruito sopra il campo dataodierna
    prova e eventualmente correggi il codice se da errore ma sempre in questa direzione...

    Group by non puo eseguire tanti campi come hai messo su

    ciao


    ciao
    Vic53

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    Ok grazie ho provato ma ha dato errore all'inizio. Sicuramente dovuto al fatto che dopo il group by ci vuole having e non where, e quello l'ho cambiato ma l'errore come sospettavo sta nel fatto che mi dice che non include i campi che tu hai eliminato dalla clausola di group by, quindi ho rimesso i campi nel group by e adesso funziona.
    Grazie
    Chi Crede in Me non Perirà MAI

  7. #7
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    588
    Quote Originariamente inviata da devil946 Visualizza il messaggio
    Ok grazie ho provato ma ha dato errore all'inizio. Sicuramente dovuto al fatto che dopo il group by ci vuole having e non where, e quello l'ho cambiato ma l'errore come sospettavo sta nel fatto che mi dice che non include i campi che tu hai eliminato dalla clausola di group by, quindi ho rimesso i campi nel group by e adesso funziona.
    Grazie
    Immaginavo che non era funzionante al 100% dato che non potevo provarla, ma vedo che hai risolto alla grande...
    io di solito faccio query piu semplici e mirate perchè devo anche io studiare meglio il linguaggio SQL... considera che vengo dalla programmazione Cobol per mainframe dove tutto è diverso e complicato..
    Vic53

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.