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

    [MySQL][SQL] Ordinamento condizionale

    Salve a tutti. Avrei bisogno di un'aiuto su una cosa un pochino complicata... dunque, ho una tabella con le seguenti colonne:

    ...
    PREZZO
    SCONTO
    ...

    Dove la colonna PREZZO contiene il prezzo di un qualsiasi articolo, e la colonna SCONTO lo sconto in percentuale.
    Se faccio una semplice select in questo modo: "SELECT * FROM articles ORDER BY prezzo", non si tiene in considerazione lo sconto e quindi il prodotto finale.
    Quindi dovrei fare così: controllare che la colonna sconto abbia un valore maggiore di zero. Se questa condizione è vera, allora non devo ordinare in base al prezzo, ma in base all'espressione: prezzo*100/sconto.

    Come potrei costruire correttamente una query del genere?

    Grazie mille

  2. #2
    Io farei un'ulteriore colonna che contiene il prezzo effettivo (ovvero prezzo_scontato=prezzo-prezzo*sconto/100) e ordinerei secondo quella colonna.

  3. #3
    Originariamente inviato da bionicoz
    Io farei un'ulteriore colonna che contiene il prezzo effettivo (ovvero prezzo_scontato=prezzo-prezzo*sconto/100) e ordinerei secondo quella colonna.
    Ma secondo me sarebbe uno spazio di memoria di troppo, possibile che non esista una query del genere?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select *,if(sconto > 0,prezzo-(prezzo /100 * sconto),prezzo) as prezzo_scontato
    from tabella
    order by prezzo_scontato desc

  5. #5
    Originariamente inviato da nicola75ss
    codice:
    select *,if(sconto > 0,prezzo-(prezzo /100 * sconto),prezzo) as prezzo_scontato
    from tabella
    order by prezzo_scontato desc
    Grazie mille!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.