none
Select com coluna variável RRS feed

  • Pergunta

  • Bom dia,

    Como é possível eu fazer um select na seguinte situação, eu tenho uma tabela de produtos, lista de preço e outra promoção, só que a promoção vai existir em alguns produtos e preciso mostrar todos os produtos porém com uma coluna de valor de promoção que na listagem para alguns produtos terá valor e para outros estará zerado???

    Item | Produto | Valor | Vl. Promo |
    0001 | 000004 | 32,50 | 25,90       |
    0002 | 000005 | 33,50 | 0,00         |


    []s




    Leonardo Jacques da Silva Desenvolvedor .net
    • Movido Gustavo Maia Aguiar domingo, 23 de agosto de 2009 02:57 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 19 de agosto de 2009 12:41

Respostas

  • Se você faz um Left Join da tabela de produtos com a tabela de promoções, um produto que não tenha promoção, vai retornar um valor de promoção Null correto? Então o isNull muda o valor do valor da promoção (SE for nulo) para zero.... é exatamente o que você descreveu...

    Supondo suas tabelas, campos e relacionamentos, ficaria assim:


    Select A.Item, A.Produto, A.Valor, IsNull(B.VlPromo , 0) as 'Vl. Promo'
     From Produtos A 
             Left Join Promocao B On A.id_Produto = B.id_Produto


    Tks. Fausto Fiorese Branco DBA - SQL Server 2k5 São Paulo - Brasil
    • Marcado como Resposta Leosul quarta-feira, 19 de agosto de 2009 18:51
    quarta-feira, 19 de agosto de 2009 14:14

Todas as Respostas

  • Left Join entre as Tabelas de produtos ou Promoçoes.. no valor da promoção uma a function Isnull(vl_Promocao, 0)

    Tks. Fausto Fiorese Branco DBA - SQL Server 2k5 São Paulo - Brasil
    quarta-feira, 19 de agosto de 2009 12:43
  • Desculpe mais eu não entendi o que você quis dizer com:

    "no valor da promoção uma a function Isnull(vl_Promocao, 0)"


    []s
    Leonardo Jacques da Silva Desenvolvedor .net
    quarta-feira, 19 de agosto de 2009 13:44
  • Se você faz um Left Join da tabela de produtos com a tabela de promoções, um produto que não tenha promoção, vai retornar um valor de promoção Null correto? Então o isNull muda o valor do valor da promoção (SE for nulo) para zero.... é exatamente o que você descreveu...

    Supondo suas tabelas, campos e relacionamentos, ficaria assim:


    Select A.Item, A.Produto, A.Valor, IsNull(B.VlPromo , 0) as 'Vl. Promo'
     From Produtos A 
             Left Join Promocao B On A.id_Produto = B.id_Produto


    Tks. Fausto Fiorese Branco DBA - SQL Server 2k5 São Paulo - Brasil
    • Marcado como Resposta Leosul quarta-feira, 19 de agosto de 2009 18:51
    quarta-feira, 19 de agosto de 2009 14:14
  • blz... tudo certinho, valeu a dica.

    []s
    Leonardo Jacques da Silva Desenvolvedor .net
    quarta-feira, 19 de agosto de 2009 18:51