Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [sql] union e order by

  1. #1

    [sql] union e order by

    Salve a tutti,
    ho provato a fare la seguente query ma mi dice che faccio un uso di union e order by:

    codice:
    Select *
    from giornosettimana
    order by giornosett
    union
    select giornosett, coalesce(0)
    from volo
    where giornosett != all(select giornosett from giornosettimana)
    order by giornosett;
    Come faccio a dirgli, in SQl-2 standard (non mysql o altro) di ordinarmi il risultato dell'intera unione per giornosett crescente?

    Inoltre vorrei chiedervi se la query si può scrivere in maniera più pulita, il database è formato dalle seguenti tabelle:
    aereoporto(citta , nazione, numpiste);
    volo(idvolo, giornosett , cittapart, oraprt, cittadest, oradest, tipoaereo);
    aereo(tipoaereo , numpasseggeri, qtamerci);

    Ora l'esercizio chiede:
    Per ciascun giorno della settimana, il massimo numero di passeggeri in aprtenza da un qualsiasi aereoporto italiano ed in arrivo a milano
    La query di sopra, viene applicata a giornosett che è la seguente visita:
    codice:
    create view giornosettimana as
    select v.giornosett, sum(a.numpasseggeri)
    from volo v join (aereoporto ar, aereo a)
    on v.tipoaereo = a.tipoaereo and v.cittapart = ar.citta
    where ar.nazione = 'italia' and v.cittadest = 'milano'
    group by v.giornosett;
    Mi chiedevo quindi, oltre che come risolvere il problema della order by, come poter snellire la query, in particolar modo se conoscete un modo abbastanza leggibile (ovvero senza creare troppe query annidate) per fare tutto in un unica query senza creare la visita.

    A me altre idee non sono venute e creare la visita è l'unico modo che mi è venuto per rendere più facile la query, però non vorrei che sono io che l'ho creata in maneira sbagliata. Tra l'altro c'è quel problema che non riesco ad applicare l'ordinamento sull'unione.

    Vi ringrazio in anticipo,
    Neptune.
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    l'order by va solo sull'ultima select

  3. #3
    Originariamente inviato da optime
    l'order by va solo sull'ultima select
    Grazie mille, non fosse stato per te sarei impazzito alla ricerca della soluzione
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  4. #4
    Mentre sempre in caso di union una eventuale group by si può mettere nelle query internet? non centra nulla con la order by che si mette solo alla fine?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  5. #5
    Originariamente inviato da Neptune
    Mentre sempre in caso di union una eventuale group by si può mettere nelle query internet? non centra nulla con la order by che si mette solo alla fine?
    cosa sono le "query internet"?

  6. #6
    Originariamente inviato da optime
    cosa sono le "query internet"?

    Volevo dire nelle query interne, ovvero nelle "select" interne alla union.

    Cioè è ammissibile una cosa del genere:

    codice:
      Select ..
      from ..
      group by ..
    union
      Select ..
      from ..
      group by ..
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  7. #7

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.