none
Variavel com valor constante RRS feed

  • Pergunta

  • Boa Noite,

    Senhores...tenho a seguinte duvida...como se faz para criar uma tabela...onde por exemplo..eu tenho

    cod_produto, preço1, preço2, preco3, total, descrição

    onde o total sempre vai receber a soma do preço1 e 2 e 3 ......
    e a drescrição..é o cod_produto contatenado..com o total!!




    GRato!!!


    Att,
    Tiodimi
    sexta-feira, 31 de outubro de 2008 20:48

Respostas

  • Boa Tarde,

     

    Você pode fazer isso utilizando colunas calculadas. Ex:

     

    Code Snippet

    CREATE TABLE tbl (cod_produto INT,

    preco1 SMALLMONEY,

    preco2 SMALLMONEY,

    preco3 SMALLMONEY,

    total as preco1 + preco2 + preco3,

    descricao as (cast(cod_produto as varchar(4)) + ' - ' +

    cast((preco1 + preco2 + preco3) as varchar(10))))

    insert into tbl (cod_produto, preco1, preco2, preco3) values (1,10,15,20)

    select * from tbl

     

     

    Em todo caso, essa não é uma recomendação que eu faria. Primeiro porque armazenar tais colunas na tabela é uma forte violação da 3FN e não é um bom tipo de implementação (seria bem melhor criar uma View).

     

    Sua tabela parece (não necessariamente) ter um grupo de repetição. Se todos os produtos tiverem de fato três preços pode manter como está, mas se os produtos podem ter vários preços seria melhor colocar essa informação em uma tabela a parte.

     

    Concatenações são características de formatação e não devem ficar no banco de dados. Deixe para combinar o ID e a soma dos preços na aplicação.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 31 de outubro de 2008 21:18
  • Boa Noite,

     

    Reforço que isso não deve ser usado em uma tabela. Se você assim o desejar, tente o seguinte:

     

    ALTER TABLE tabela ADD ColunaCalculda AS Calculo

     

    No lugar de "cálculo" coloque o cálculo utilizando as colunas desejadas.

     

    [ ]s,

     

    Gustavo

     

    terça-feira, 4 de novembro de 2008 21:16

Todas as Respostas

  • Boa Tarde,

     

    Você pode fazer isso utilizando colunas calculadas. Ex:

     

    Code Snippet

    CREATE TABLE tbl (cod_produto INT,

    preco1 SMALLMONEY,

    preco2 SMALLMONEY,

    preco3 SMALLMONEY,

    total as preco1 + preco2 + preco3,

    descricao as (cast(cod_produto as varchar(4)) + ' - ' +

    cast((preco1 + preco2 + preco3) as varchar(10))))

    insert into tbl (cod_produto, preco1, preco2, preco3) values (1,10,15,20)

    select * from tbl

     

     

    Em todo caso, essa não é uma recomendação que eu faria. Primeiro porque armazenar tais colunas na tabela é uma forte violação da 3FN e não é um bom tipo de implementação (seria bem melhor criar uma View).

     

    Sua tabela parece (não necessariamente) ter um grupo de repetição. Se todos os produtos tiverem de fato três preços pode manter como está, mas se os produtos podem ter vários preços seria melhor colocar essa informação em uma tabela a parte.

     

    Concatenações são características de formatação e não devem ficar no banco de dados. Deixe para combinar o ID e a soma dos preços na aplicação.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 31 de outubro de 2008 21:18
  • Como faço isso com uma tabela ao qual já existe no banco...?!

    tentei fazer com o alter table....mais nao deu certo...
    terça-feira, 4 de novembro de 2008 16:31
  • Boa Noite,

     

    Reforço que isso não deve ser usado em uma tabela. Se você assim o desejar, tente o seguinte:

     

    ALTER TABLE tabela ADD ColunaCalculda AS Calculo

     

    No lugar de "cálculo" coloque o cálculo utilizando as colunas desejadas.

     

    [ ]s,

     

    Gustavo

     

    terça-feira, 4 de novembro de 2008 21:16