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

    [SQL] Selezionare i maggiori e le informazioni

    Salve.

    Devo realizzare una query, possibilmente in botta unica, che mi restituisca quanto segue:

    Tabella originale:

    codice:
    | ID_OGGETTO | TITOLO | VOLUME | CAPITOLO | DATA USCITA |
    ---------------------------------------------------------
    |      1     | Pippo  |    1   |    1     | xxxxxxxxxxx |
    ---------------------------------------------------------
    |      2     | Pippo  |    1   |    2     | xxxxxxxxxxx |
    ---------------------------------------------------------
    |      3     | Pippo  |    2   |    3     | xxxxxxxxxxx |
    ---------------------------------------------------------
    |      4     | Pluto  |    1   |    4     | xxxxxxxxxxx |
    ---------------------------------------------------------
    |      5     | Pluto  |    1   |    5     | xxxxxxxxxxx |
    ---------------------------------------------------------
    La mia esigenza è di ritornare una riga per ogni possibile titolo, corrispondente a quello con il valore di capitolo e volume massimo.

    Nell'esempio sopra deve ritornare:
    codice:
    ---------------------------------------------------------
    |      3     | Pippo  |    2   |    3     | xxxxxxxxxxx |
    ---------------------------------------------------------
    |      5     | Pluto  |    1   |    5     | xxxxxxxxxxx |
    ---------------------------------------------------------
    In quanto sono le due righe con titolo distinto, che abbiano i valori massimi di volume e capitolo.

    Secondo voi è possibile farlo in un'unica query?

    Grazie e alla prossima...
    .:[Mr.Mime]:.

  2. #2
    SELECT titolo, max(volume), max(capitolo) FROM tabella GROUP BY titolo

    Non garantisco per niente, probabilmente ti da errore ma provare non ti costa niente

  3. #3
    Avevo già provato ad usare i MAX però non funzionano. Sulla rete tra l'altro ho trovato scritto che MAX non può essere usato in contemporanea alla restituzione di altri valori.

    Grazie e alla prossima...
    .:[Mr.Mime]:.

  4. #4
    su quella query dubitavo ma che non si possa prendere altri valori oltre a quello massimo mi sembra strano, io uso spesso questo tipo di query

  5. #5
    Non ho sottomano la guida però questo è quello a cui mi riferivo:

    Da: http://www.masterdrive.it
    E’ infatti errata (o quantomeno non standard) un’istruzione di questo tipo:

    SELECT MAX(lunghezza), nome FROM barche

    Infatti lo standard Sql specifica chiaramente che una singola clausola SELECT non può contenere espressioni normali insieme a funzioni aggregate (ossia quelle funzioni il cui calcolo coinvolge potenzialmente tutti i record della tabella).
    E' poi effettiamente possibile che specifici DBMS possano implementarle.

    Ciao e alla prosisma...
    .:[Mr.Mime]:.

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.