none
Problema com select RRS feed

  • Pergunta

  • Pessoal,

     

    Tenho a seguinte situação:

     

    select a.produto, b.descricao, a.preco * (1 - b.desconto/100) as 'preco'

    from produtos a

    left outer join marcas b on a.marca = b.marca

     

    Tabelas

     

    Produtos

     

    produto     descricao          preco   marca

    sabao        muito bom          20        bombril

     

    Marcas

     

    marca       descricao          desconto

    bombril     legal                   10

     

     

    Acontece que não está retornando a coluna 'preco' com o desconto baseado na tabela marcas.

    O que estou fazendo de errado?

     

     

    Obrigado

    Allex

     

     

     

     

    sexta-feira, 20 de junho de 2008 14:33

Respostas

  • vja

     


    Create Table #produtos (produto varchar(10), descricao varchar(100), preco int, marca varchar(10))
    insert into #produtos (produto,     descricao,          preco,   marca) Values ('sabao','muito bom',20,'bombril')

    Create Table #Marcas (marca varchar(10),   descricao  varchar(100),  desconto int)
    insert into #Marcas (marca, descricao, desconto) Values ('bombril','legal',10)



    select a.produto, b.descricao,a.preco-(a.preco*(desconto/100.00)) as 'preco'
    from #produtos a
    left outer join #marcas b on a.marca = b.marca

     

    talvez o unico problema seja o tipo de dados do campo desconto troque ele para xx.xxx assim ele ira clacular correto veja se e isso mesmo.

     

    Abs;

     

    sexta-feira, 20 de junho de 2008 16:20
  • Marcelo,

     

    Agora funcionou, precisei de alterar o tipo de dado da coluna desconto de INT para DECIMAL(12,2).

     

    Obrigado pela ajuda.

     

    Allex

     

    sexta-feira, 20 de junho de 2008 17:50

Todas as Respostas

  • veja se esta ok asim

     

    select a.produto, b.descricao,a.preco,  a.preco - (b.desconto/100) as 'preco'
    from produtos a
    left outer join marcas b on a.marca = b.marca

    Abs;

     

    sexta-feira, 20 de junho de 2008 15:02
  • Marcelo obrigado pela ajuda, mas na tabela de marcas o desconto está com 10.

    O valor final deveria ser 18, se eu pegar os valores e calcular da certo, mas neste select não está trazendo corretamente.

    Com a opção que você me passou também retorna errado, retorna o preco sem o desconto.

     

    Deveria fazer corretamente assim:

     

    20 * (1-10/100) = 18

     

     

    Obrigado

    Allex

     

    sexta-feira, 20 de junho de 2008 15:20
  • vja

     


    Create Table #produtos (produto varchar(10), descricao varchar(100), preco int, marca varchar(10))
    insert into #produtos (produto,     descricao,          preco,   marca) Values ('sabao','muito bom',20,'bombril')

    Create Table #Marcas (marca varchar(10),   descricao  varchar(100),  desconto int)
    insert into #Marcas (marca, descricao, desconto) Values ('bombril','legal',10)



    select a.produto, b.descricao,a.preco-(a.preco*(desconto/100.00)) as 'preco'
    from #produtos a
    left outer join #marcas b on a.marca = b.marca

     

    talvez o unico problema seja o tipo de dados do campo desconto troque ele para xx.xxx assim ele ira clacular correto veja se e isso mesmo.

     

    Abs;

     

    sexta-feira, 20 de junho de 2008 16:20
  • Marcelo,

     

    Agora funcionou, precisei de alterar o tipo de dado da coluna desconto de INT para DECIMAL(12,2).

     

    Obrigado pela ajuda.

     

    Allex

     

    sexta-feira, 20 de junho de 2008 17:50