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

    SQL query con TOP e Date

    Che titolo impegnativo!!! hehehe

    Cmq mi serve una manina... ho un DB con i seguenti campi:

    |NOME|DATA|
    |pippo|14/06/04|
    |pluto|14/06/04|
    |paperino|15/06/04|
    |topolino|15/06/04|
    |minny|15/06/04|
    |gastone|16/06/04|

    ho bisogno di tirare fuori i campi delle ultime 2 date inserite, ovveto mi aspetto di ricevere:

    |paperino|15/06/04|
    |topolino|15/06/04|
    |minny|15/06/04|
    |gastone|16/06/04|

    Se un giorno aggiungo al DB:
    |paperone|17/06/04|

    la query mi dovrà tirare fuori:

    |gastone|16/06/04|
    |paperone|17/06/04|


    Quindi dovrei fare una sorta di

    Select TOP 2 * From.... order By DATA

    Ma cosa succede? Che mi tira fuori solo
    |minny|15/06/04|
    |gastone|16/06/04|

    e non
    |paperino|15/06/04|
    |topolino|15/06/04|
    |minny|15/06/04|
    |gastone|16/06/04|

    come fare?
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    156
    ciao seguace del metallo powerone

    a me viene in mente solamente un codice con do--loop memorizzandosi le date; quando cambia la data esci dal ciclo

  3. #3

    ???

    Spiegati meglio pao...

    Non ho capito a cosa ti riferisci!
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  4. #4
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Si riferisce agli Helloween

    Dai un'occhiata a questo thread.

  5. #5

    Avevo capito degli Helloween

    Ma non del suo do-loop

    Cmq longline...

    a me il WHERE non interessa...

    la mia SQL è del tipo
    SELECT TOP 2 * from elenco order by DBdata desc

    che succede però che se ho più di 2 TOP date uguali, mi mostra solo tutti i record con l'ultima data (es. ne sono 4) ed essendo 4 > 2 (TOP) non mi mostra gli altri record con la seconda data più recente.

    Riprovo a fare un Esempio:

    |NOME|DATA|
    |pluto|14/06/04|
    |topolino|15/06/04|
    |minny|15/06/04|
    |minny|15/06/04|
    |gastone|16/06/04|
    |gastone|16/06/04|
    |gastone|16/06/04|

    la mia SQl restituisce:
    |gastone|16/06/04|
    |gastone|16/06/04|
    |gastone|16/06/04|

    3 risultati perchè ho chiesto un TOP 2 (3 è maggiore di 2)
    io voglio però
    che mi risulti:

    |minny|15/06/04|
    |minny|15/06/04|
    |gastone|16/06/04|
    |gastone|16/06/04|
    |gastone|16/06/04|

    perchè sono le TOP 2 date (non mi interessa di ogni data quanti sono i record trovati)....
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  6. #6
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    secondo me hai un approcio sbagliato al problema vuoi a tutti costi usare top2 ma vuoi che esista una funzione che ovviamente non esiste!
    devi ristrutturare la tua sql come ti hanno suggerito in particolare come:

    select order by data desc

    e utilizzare un loop che ti estragga gli ultimi record e controlli quali sono uguali , li memorizzi e con un altro ciclo crei l'output all'utente


    Rixx

  7. #7

    Grazie Rixx

    Mi hai illuminato... infatti ci sono riuscito...
    A vantaggio di coloro che un giorno potrebbero avere le mie stesse esigenze, posto il mio metodo:

    codice:
    set rs=server.createobject("ADODB.recordset")
    set Rs = objConn.Execute("SELECT DISTINCT DATADB from TABELLA order by DATADB desc")
    
    for i = 1 to 2
    
    set rs2=server.createobject("ADODB.recordset")
    set Rs2 = objConn.Execute("SELECT * from TABELLA WHERE DATADB =#"& rs("DATADB") &"# ")
    Rs.Movenext
    Do while NOT rs2.EOF
    response.write rs2("NOME") &" - "& rs2("DATADB ") & "
    "
    Rs2.Movenext
    Loop
    
    Next
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  8. #8
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854

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.