+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: [ASP]Aggregazione

  1. #1
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837

    [ASP]Aggregazione

    Ciao,

    Con questa query mi ricavo il valore min e max di un determinato campo numerico contenuto nel database.

    codice:
    Sql= "SELECT max(visite) as MaxVisita, min(visite) as MinVisita FROM Notizie"
    set rsVis=Conn.Execute(Sql) : Sql=""
    Fin quì tutto oK. Il problema è che oltre ai valori min e max mi serve poter leggere anche il contenuto di un altro campo sempre della stessa tabella.

    Come fare?
    Carmen!

  2. #2
    L'avatar di Morenz
    Morenz non è in linea Scribacchino
    Luogo
    Strambino (TO)
    Post
    504
    Quote Originariamente inviato da Carmen Visualizza il messaggio
    Ciao,

    Con questa query mi ricavo il valore min e max di un determinato campo numerico contenuto nel database.

    codice:
    Sql= "SELECT max(visite) as MaxVisita, min(visite) as MinVisita FROM Notizie"
    set rsVis=Conn.Execute(Sql) : Sql=""
    Fin quì tutto oK. Il problema è che oltre ai valori min e max mi serve poter leggere anche il contenuto di un altro campo sempre della stessa tabella.

    Come fare?
    Usi le funzioni di aggregazione? Bene, i campi aggiuntivi non "aggregati" vanno nella clausola GROUP BY:

    codice:
    Sql= "SELECT max(visite) as MaxVisita, min(visite) as MinVisita, Campocercato FROM Notizie GROUP BY Campocercato"
    set rsVis=Conn.Execute(Sql) : Sql=""

    Ciao,
    Morenz
    piesse: mi sa che questo non è il posto adatto per questa discussione....
    A com' atrocità
    Doppia T com' terremoto e traggedia
    I com ir' tittio
    L com' laco di sangue
    e A com' adesso vengo lì e ti sfascio le corna!!!
    -----
    Linux User #469305
    Coltivate Linux, che Windows si pianta da solo!!!


  3. #3
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Purtroppo ci avevo già provato. Si, funziona però mi ritorna i dati errati probabbilmente perchè vengono raggruppati.
    Carmen!

  4. #4
    L'avatar di Morenz
    Morenz non è in linea Scribacchino
    Luogo
    Strambino (TO)
    Post
    504
    Prova a usare la max e la min in 2 query separate... è strano... al max puoi fare un esempio dei dati che hai e di cosa vuoi ricevere?

    Ciao e grazie,
    Morenz
    A com' atrocità
    Doppia T com' terremoto e traggedia
    I com ir' tittio
    L com' laco di sangue
    e A com' adesso vengo lì e ti sfascio le corna!!!
    -----
    Linux User #469305
    Coltivate Linux, che Windows si pianta da solo!!!


  5. #5
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    cosi
    codice:
    Sql= "SELECT max(visite) as MaxVisita, min(visite) as MinVisita FROM Notizie"
    La funzione max mi restituisce 232, mentre la min 0 (i dati in questo caso sono esatti)

    Se invece faccio così:
    codice:
    'Sql= "SELECT max(visite) as MaxVisita, min(visite) as MinVisita, link FROM Notizie GROUP BY link"
    La funzione max mi restituisce 2, mentre la min pure 2 (i dati in questo caso sono errati)

    il campo link mi deve restituire appunto il link del record più letto, e quello meno letto
    Ultima modifica di Carmen; 16-07-2007 21:24 
    Carmen!

  6. #6
    L'avatar di Morenz
    Morenz non è in linea Scribacchino
    Luogo
    Strambino (TO)
    Post
    504
    mmmmm...

    Prova con

    codice:
     
    SELECT Visite, CampoCercato
    FROM Notizie
    WHERE Visite = (SELECT max(Visite) FROM Notizie) OR Visite = (SELECT min(Visite) FROM notizie)
    Forse un po' contorta, ma potrebbe funzionare...

    Ciao,
    Morenz
    A com' atrocità
    Doppia T com' terremoto e traggedia
    I com ir' tittio
    L com' laco di sangue
    e A com' adesso vengo lì e ti sfascio le corna!!!
    -----
    Linux User #469305
    Coltivate Linux, che Windows si pianta da solo!!!


  7. #7
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Ma come devo leggere il valore restituito da min e max?
    Carmen!

  8. #8
    L'avatar di Morenz
    Morenz non è in linea Scribacchino
    Luogo
    Strambino (TO)
    Post
    504
    La query restituisce almeno 2 record (uno per il minimo, uno per il massimo... o più, se vengono trovati più valori uguali al minimo e massimo)
    In un record avrai il valore massimo ed il campo cercato
    Nel secondo arai il valore minimo ed il campo cercato

    (chiamo "campo cercato" il campo aggiuntivo di cui parlavi)

    Ciao,
    Morenz
    A com' atrocità
    Doppia T com' terremoto e traggedia
    I com ir' tittio
    L com' laco di sangue
    e A com' adesso vengo lì e ti sfascio le corna!!!
    -----
    Linux User #469305
    Coltivate Linux, che Windows si pianta da solo!!!


  9. #9
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Mi sembra dunque di aver capito che per leggere i valori devo eseguire un ciclo while sui due record restituiti dalla query. Esatto?
    Carmen!

  10. #10
    L'avatar di Morenz
    Morenz non è in linea Scribacchino
    Luogo
    Strambino (TO)
    Post
    504
    Ti consiglierei di fare un while fino a EOF, in modo da leggere tutti i valori, quanti essi possano essere (non so poi com'è strutturato il tuo DB, magari tu sei sicura che i record saranno sempre e solo 2...).

    In ogni caso sì, la cosa può essere fatta con un ciclo.

    Prova e fammi sapere.

    Ciao,
    Morenz
    A com' atrocità
    Doppia T com' terremoto e traggedia
    I com ir' tittio
    L com' laco di sangue
    e A com' adesso vengo lì e ti sfascio le corna!!!
    -----
    Linux User #469305
    Coltivate Linux, che Windows si pianta da solo!!!


+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi