Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81

    Ordinare recordset per data come stringa

    Salve a tutti,
    ho ereditato un database in cui il campo "data" è una stringa testuale formattata come "GGMMAAAA". Poichè devo effettuare l'ordinamento del recorset tramite il campo data, ottengo in modo sbagliato:

    01012004
    01012005
    01032005
    02012004
    02012005

    che ovviamente non mi sta bene.
    Allora ho pensato di separare i valori tramite la funzione mid(data,1,2) x i GG, mid(data,3,2) x i MM e mid(data,5,4) x gli AAAA. A questo punto non posso fare l'ordinamento tramite ORDER BY che si riferisce ad un campo del recordset ma vorrei provare a creare UN ALTRO RECORDSET (anche disconnesso va bene) in cui aggiungo i campi "Giono", "Mese", "Anno" con i quali sarebbe possibile fare un corretto ordinamento.

    Spero di essere stato chiaro e vi ringrazio in anticipo per la collaborazione!

  2. #2
    si puote. ORDER BY accetta anche un numero che rappresenta il valore posizionale del campo da usare per il riordino.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Ciao optime,
    e grazie per la celere risposta. Io ho trovato su internet (google groups) questa informazione:
    Non e' necessario, perche' si puo' passare il NUMERO posizionale del campo
    che si intende utilizzare per l'ordinamento. Ad esempio:

    SELECT IDRiunione, Path, Data
    FROM dbo.RIUNIONI
    ORDER BY 1


    mi ordina per "IDRiunione", un "ORDER BY 2" per "Path", e cosi' via.
    Quindi non credo possa avere un'attinenza con quanto da me richiesto.
    Potresti farmi un esempio riferito al mio caso?
    Ho trovato invece altre informazioni sul metodo SHAPE. Potrebbe essere una soluzione?

  4. #4
    e invece va bene (come ti avevo detto io)


    codice:
    SELECT
       (MID(campodata,5,4) + MID(campodata,3,2) + MID(campodata,1,2)) AS CampodataOrdine,
        campo1, campo2, ..., campoN
    FROM
       tabella
    WHERE
       .... condizioni
    ORDER BY 1
    basta usare la fantasia!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Opty,
    mi sa che oltre alla fantasia dovrei usare una buona dose di pazienza...
    La tua idea è grande e bellissima, ma (sicuramente per mia inettitudine...) ricevo il seguente errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC SQL Server Driver][SQL Server]'MID' is not a recognized function name.

    /git/tmpgit/ordinaxdata.asp, line 21
    Ti posto la stringa sql che sto utilizzando:

    sql = "SELECT (MID(CalendarInfo.[date],5,4) + MID(CalendarInfo.[date],3,2) + MID(CalendarInfo.[date],1,2)) AS data, " &_
    "CalendarInfo.codiceintervento AS codiceintervento, " &_
    "richiesteinserite.id_cliente AS id_cliente, " &_
    "CalendarInfo.luogo AS luogo, " &_
    "CalendarInfo.orainizio AS orapartenza, " &_
    "CalendarInfo.orafine AS orarrivo, " &_
    "CalendarInfo.memo AS memo, " &_
    "CalendarInfo.status AS status, " &_
    "CalendarInfo.id_tecnico AS id_tecnico " &_
    "FROM CalendarInfo INNER JOIN richiesteinserite ON CalendarInfo.codiceintervento = richiesteinserite.codiceintervento " &_
    "WHERE status = 0 ORDER BY 1"

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    sql server 2000

    che richiamo con la seguente stringa:

    StrConnect = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DRIVER=SQL Server;SERVER=nomeserver;UID=utonto;APP=Microsoft Development Environment;DATABASE=nomedatabase "";User Id=utonto; Pwd=password;"
    Set rs = Server.CreateObject("ADODB.Recordset")
    Il database funziona benissimo e anche l'apertura del recordset (rs.open sql, strConnect) è funzionale (update, delete ed insert ok)

  8. #8
    sostituisci MID( con SUBSTRING(

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Miticooooh... funziona con SUBSTRING!!!

    Opty, mille grazie!

    Un ultima cortesia. Ma qual'è la differenza tra MID e SUBSTRING?

  10. #10
    ninguna. MID e' per ACCESS, SUBSTRING è per SQL.

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.