none
Campo calculado RRS feed

  • Pregunta

  • Saludos,

    Mi pregunta es la siguiente: Quisiera saber como crear una columna calculada con cierta condicion. Ejemplo;

    Create Table MyTable ( Monto decimal (18,2), Interes decimal (18,2), Tiempo int, Interes_Acumulado decimal (18,2), --Este es el campo que debe ser del tipo calculado

    --Abajo es la condicion que deseo

    --Interes_Acumulado as (Monto * Interes /100 * Tiempo) where Tiempo > 0 )


    La idea es la siguiente; El campo Interes_Acumulado debe ser igual a cero (0) cuando el campo Tiempo sea menor o igual a cero (0) y de lo contrario si el campo Tiempo es mayor (>) a Cero (0), el campo Intere_Acumulado debe llevar la siguiente formula:

    Monto*Interes/100*Tiempo

    Necesito este codigo con exactitud, que se calcule solo, porque con un update puedo hacerlo, pero no es lo que busco.

    con el Update seria asi;

    update MyTable set Interes_Acumulado = Monto * Interes/100*Tiempo where Tiempo > 0



    • Editado DewinRD sábado, 30 de mayo de 2020 14:23
    sábado, 30 de mayo de 2020 13:54

Todas las respuestas

  • Hola DewinRD:

    Create Table MyTable
    (
    Monto decimal (18,2),
    Interes  decimal (18,2),
    Tiempo int,
    Interes_Acumulado  AS (case when tiempo >0 then Monto * Interes/100*Tiempo else 0 end)
    );
    

    o para devolver el tipo esperado.

    Create Table MyTable
    (
    Monto decimal (18,2),
    Interes  decimal (18,2),
    Tiempo int,
    Interes_Acumulado  AS (Convert(decimal(18,2),(case when tiempo >0 then Monto * Interes/100*Tiempo else 0 end)))
    );

    Esto sería como columna calculada.

    Si quieres que el dato persista en la tabla para que el SQL no tenga que volver a realizar los cálculos cada vez que recuperes datos.

    Create Table MyTable
    (
    Monto decimal (18,2),
    Interes  decimal (18,2),
    Tiempo int,
    Interes_Acumulado  AS (Convert(decimal(18,2),(case when tiempo >0 then Monto * Interes/100*Tiempo else 0 end))) PERSISTED
    );
    

    Columna Calculada

    https://docs.microsoft.com/es-es/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-ver15

    domingo, 31 de mayo de 2020 5:39
  • Hola DewinRD déjame decirte que has duplicado el hilo.

    Saludos

    lunes, 1 de junio de 2020 18:50
    Moderador