none
Calcolare risultato colonna calcolata gestendo divisioni per zero RRS feed

  • Domanda

  • Salve a tutti,devo fare un operazione per voi sicuramente semplicissima ,ma che mi sta creando alcuni problemi. In pratica ho una colonna prezzo (decimal) e una colonna sconto (int)

    Dovrei scrivere una query che aggiunga automaticamente una colonna contenente,il prezzo scontato,e in caso di eccezione di divisione per zero mi desse solo il prezzo

    una cosa del tipo , select prezzo,sconto, (100*Sconto)/prezzo

    in cui se la terza colonna ha sconto = 0 ad esempio, mi dia il solo prezzo

    Grazie mille!



    • Modificato NikkySixx mercoledì 19 ottobre 2011 14:19
    mercoledì 19 ottobre 2011 13:59

Risposte

  •  

    ALTER PROCEDURE [dbo].[prova_stored_procedure]
    @prezzo as decimal,
    @sconto as int
    AS
    BEGIN
    DECLARE @var DECIMAL(10,2)
    SELECT DISTINCT prezzo,sconto,
    prezzo_scontato=Cast(Prezzo*(1-sconto/100.0) as DECIMAL(10,2))
    FROM tabella
    END
    

     

     

    Best regards
    • Contrassegnato come risposta NikkySixx mercoledì 19 ottobre 2011 15:33
    mercoledì 19 ottobre 2011 15:25

Tutte le risposte

  • Ciao NikkySixx,

    Prova questa query PF:

    SELECT prezzo,sconto,Prezzo*(1-sconto/100.0)
    FROM TABELLA

     


    Best regards
    mercoledì 19 ottobre 2011 14:22
  • Perfetto! solo che ho un piccolo problema.In pratica il risultato è espresso con 8 cifre decimali.

    Come faccio - con la sintassi di sql server all interno della mia stored procedure - a dichiarare una nuova variabile decimale a 2 cifre di precisione,e poi ad assegnargli la funzione da te suggeritami?

    Grazie ancora 

    mercoledì 19 ottobre 2011 14:58
  • Prova PF :

    DECLARE @var DECIMAL(10,2)
    select @Var=Prezzo*(1-sconto/100.0) ...
    

     

     

    Best regards
    mercoledì 19 ottobre 2011 15:04
  • Ho provato a mettere assieme il tutto ma non funziona,continuo a vedere il risultato finale a piu di 2 cifre decimali dopo la virgola .....in piu vorrei cambiare nome alla colonna risultato e l as non funziona.

    Dove sono gli errori?

    ALTER PROCEDURE [dbo].[prova_stored_procedure]
    
    @prezzo as decimal,
    @sconto as int
    AS
    
    BEGIN
    
    DECLARE @var DECIMAL(10,2)
    
    SELECT DISTINCT  prezzo,sconto,
                          var=Prezzo*(1-sconto/100.0)
    FROM tabella




    • Modificato NikkySixx mercoledì 19 ottobre 2011 15:19
    mercoledì 19 ottobre 2011 15:17
  •  

    ALTER PROCEDURE [dbo].[prova_stored_procedure]
    @prezzo as decimal,
    @sconto as int
    AS
    BEGIN
    DECLARE @var DECIMAL(10,2)
    SELECT DISTINCT prezzo,sconto,
    prezzo_scontato=Cast(Prezzo*(1-sconto/100.0) as DECIMAL(10,2))
    FROM tabella
    END
    

     

     

    Best regards
    • Contrassegnato come risposta NikkySixx mercoledì 19 ottobre 2011 15:33
    mercoledì 19 ottobre 2011 15:25
  • Grazie 1000 così è perfetto :)
    mercoledì 19 ottobre 2011 15:34
  • Prego :)
    Best regards
    mercoledì 19 ottobre 2011 15:36