none
TRANSACT SQL, QUERY RRS feed

  • Pregunta

  • Buenas tardes,

    GRACIAS DE ANTEMANO.

    Mi consulta es la siguiente:

    TENGO UNA TABLA (dbo.ARTICULO) CON LOS CAMPOS;

    CODIGO DE ARTICULO (CODART), DESCRIPCIÓN (DESCART) ,ULTIMO PRECIO COMPRA (ULTPRCCOM) Y TIPO DE IVA (TIPIVA).

    QUIERO COMO RESULTADO, UNA TABLA DONDE A LOS CAMPOS DE ARRIBA SE AÑADA UN NUEVO CAMPO (PRECIOESTANDARD).

    PRECIOESTANDARD= ULTPRCCOM * TIPIVA

    EL PROBLEMA ES QUE TIPIVA ES UN VARCHAR(8), QUE CONTIENE, 4 VALORES;

    ORD21 (21% IVA)

    SRE (4% IVA)

    RED10 (10% IVA)

    EXE (SIN IVA)

    LÓGICAMENTE NO PUEDO MULTIPLICAR POR 'ORD21', Y ANTES ME GUSTARÍA DECIRLE QUE CUANDO LEA ORD21, MULTIPLIQUE EL ULTPRECOM * 1,21

    ¿CÓMO PODRÍA HACERLO?

    GRACIAS


    jueves, 1 de marzo de 2018 14:39

Respuestas

  • Buenas tardes,

    GRACIAS DE ANTEMANO.

    Mi consulta es la siguiente:

    TENGO UNA TABLA (dbo.ARTICULO) CON LOS CAMPOS;

    CODIGO DE ARTICULO (CODART), DESCRIPCIÓN (DESCART) ,ULTIMO PRECIO COMPRA (ULTPRCCOM) Y TIPO DE IVA (TIPIVA).

    QUIERO COMO RESULTADO, UNA TABLA DONDE A LOS CAMPOS DE ARRIBA SE AÑADA UN NUEVO CAMPO (PRECIOESTANDARD).

    PRECIOESTANDARD= ULTPRCCOM * TIPIVA

    EL PROBLEMA ES QUE TIPIVA ES UN VARCHAR(8), QUE CONTIENE, 4 VALORES;

    ORD21 (21% IVA)

    SRE (4% IVA)

    RED10 (10% IVA)

    EXE (SIN IVA)

    LÓGICAMENTE NO PUEDO MULTIPLICAR POR 'ORD21', Y ANTES ME GUSTARÍA DECIRLE QUE CUANDO LEA ORD21, MULTIPLIQUE EL ULTPRECOM * 1,21

    ¿CÓMO PODRÍA HACERLO?

    GRACIAS


    podrias crear una tabla catalo donde tendrias tu tipo de iva

    CodTipoIva            valor
    ORD21  0.21
    SRE 0.04
    RED10  0.1
    EXE 0

    tu selec seria algo asi

    select a.*,  (ULTPRCCOM * tti.valor)PRECIOESTANDARD from ARTICULO a inner join TablaTipoIva tti
    on a.TIPIVA = tti.CodTipoIva

    y otra forma seria

    select a.*,  
    case TIPIVA
    when 'ORD21' then (ULTPRCCOM * 0.21)
    when 'SRE' then (ULTPRCCOM * 0.04)
    when 'RED10' then (ULTPRCCOM * 0.1)
    when 'EXE' then (ULTPRCCOM * 0.0)
    end
    PRECIOESTANDARD
     from ARTICULO a 


    Att. Franklin Andino


    jueves, 1 de marzo de 2018 15:03
  • Te sugiero crear una tabla donde definas las tasas por cada impuesto, si escribes los valores en código te verás en serios problemas cuando las tasas de los impuestos varíen, que de hecho pueden variar.
    • Marcado como respuesta Sistemas.Farma viernes, 2 de marzo de 2018 8:18
    jueves, 1 de marzo de 2018 15:19

Todas las respuestas

  • Buenas tardes,

    GRACIAS DE ANTEMANO.

    Mi consulta es la siguiente:

    TENGO UNA TABLA (dbo.ARTICULO) CON LOS CAMPOS;

    CODIGO DE ARTICULO (CODART), DESCRIPCIÓN (DESCART) ,ULTIMO PRECIO COMPRA (ULTPRCCOM) Y TIPO DE IVA (TIPIVA).

    QUIERO COMO RESULTADO, UNA TABLA DONDE A LOS CAMPOS DE ARRIBA SE AÑADA UN NUEVO CAMPO (PRECIOESTANDARD).

    PRECIOESTANDARD= ULTPRCCOM * TIPIVA

    EL PROBLEMA ES QUE TIPIVA ES UN VARCHAR(8), QUE CONTIENE, 4 VALORES;

    ORD21 (21% IVA)

    SRE (4% IVA)

    RED10 (10% IVA)

    EXE (SIN IVA)

    LÓGICAMENTE NO PUEDO MULTIPLICAR POR 'ORD21', Y ANTES ME GUSTARÍA DECIRLE QUE CUANDO LEA ORD21, MULTIPLIQUE EL ULTPRECOM * 1,21

    ¿CÓMO PODRÍA HACERLO?

    GRACIAS


    podrias crear una tabla catalo donde tendrias tu tipo de iva

    CodTipoIva            valor
    ORD21  0.21
    SRE 0.04
    RED10  0.1
    EXE 0

    tu selec seria algo asi

    select a.*,  (ULTPRCCOM * tti.valor)PRECIOESTANDARD from ARTICULO a inner join TablaTipoIva tti
    on a.TIPIVA = tti.CodTipoIva

    y otra forma seria

    select a.*,  
    case TIPIVA
    when 'ORD21' then (ULTPRCCOM * 0.21)
    when 'SRE' then (ULTPRCCOM * 0.04)
    when 'RED10' then (ULTPRCCOM * 0.1)
    when 'EXE' then (ULTPRCCOM * 0.0)
    end
    PRECIOESTANDARD
     from ARTICULO a 


    Att. Franklin Andino


    jueves, 1 de marzo de 2018 15:03
  • Te sugiero crear una tabla donde definas las tasas por cada impuesto, si escribes los valores en código te verás en serios problemas cuando las tasas de los impuestos varíen, que de hecho pueden variar.
    • Marcado como respuesta Sistemas.Farma viernes, 2 de marzo de 2018 8:18
    jueves, 1 de marzo de 2018 15:19
  • Buenos días,

    gracias, lo he hecho creando una tabla catalogo y despúes con la consulta, adaptada a mi BBDD, y funciona perfecto.

    Me gustaría saber, como podría ahora, el resultado meterlo en un campo de una tabla de la BBDD.

    El resultado de la QUERY, meterlo en un campo que se llama PRCSTANDARD, de la tabla dbo.ARTICULO.

    Muchas gracias!

    viernes, 2 de marzo de 2018 11:17