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

    Problema in query MySQL

    Salve a tutti, sto impazzendo con una query.

    codice:
    SELECT * , prezzo, IF( prezzo <10000, '1.6', IF( prezzo >=10000
    AND prezzo <20000, '1.4', IF( prezzo >=20000
    AND prezzo <50000, '1.3', IF( prezzo >=50000, '1.25', '0' ) ) ) ) AS tassa,
    (prezzo * tassa * 1.10) as rata
    FROM sys_modelli
    In sostanza, dopo aver valutato il campo prezzo ed aver estrapolato la tassa, vorrei fare la moltiplicazione tra il prezzo, la tassa trovata e un valore (1.10) solo che ovviamente mi dice che il campo tassa non è riconosciuto.

    Ho provato in tutti i modi ma non ci sono riuscito.

    Qualcuno ha qualche suggerimento?

    Grazie!

  2. #2
    usa CASE e non gli if annidati.
    http://dev.mysql.com/doc/refman/5.5/en/case.html

    es:
    codice:
    SELECT *,
    case
       when prezzo < 1000
       then prezzo * 1.6 * 1.10
       when prezzo >= 10000 AND prezzo < 20000
       then prezzo * 1.4 * 1.10
       when prezzo >=20000 AND prezzo <50000
       then prezzo * 1.3 * 1.10
       else prezzo * 1.25 * 1.10
    and case as rata
    ........

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ciao,

    sembra che neanche mysql risolva gli alias all'interno della stessa select,
    per cui o ripeti l'espressione di tassa oppure usi una subquery

    codice:
    select
    q.*
    ,(prezzo * tassa *1.10)as rata
     from 
    (
    SELECT *, prezzo, IF( prezzo <10000,'1.6', IF( prezzo >=10000
    AND prezzo <20000,'1.4', IF( prezzo >=20000
    AND prezzo <50000,'1.3', IF( prezzo >=50000,'1.25','0')))) AS tassa,
    FROM sys_modelli
    ) as q
    


    Ultima modifica di sspintux; 06-10-2013 a 20:04 Motivo: errore copia incolla

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.