none
Ajuda em Select RRS feed

  • Pergunta

  • Olá Pessoal, preciso fazer uma select, mas estou tendo dificuladades:

     

    Tabela: folha_comissao

    folha_comissao_codigo

    folha_comissao_lancamento

    folha_comissao_descricao

    folha_comissao_valor

     

    Tabela: folha_despesa

    folha_despesa_codigo

    folha_despesa_lancamento

    folha_despesa_descricao

    folha_despesa_valor

     

    Tabela: folha_lancamento

    folha_lancamento_codigo

    folha_lancamento_lancamento

    folha_lancamento_mes

    folha_lancamento_salario

    folha_lancamento_banco

    folha_lancamento_dinheiro

    folha_lancamento_total

     

    Estou fazendo a seguinte select em cima destas tabelas:

     

    SELECT     folha_comissao.folha_comissao_descricao AS COMDESC, folha_comissao.folha_comissao_valor COMVALOR, folha_despesa.folha_despesa_descricao DESPDESC,
                          folha_despesa.folha_despesa_valor DESCVALOR,

    CASE

    WHEN folha_comissao_lancamento IS NULL THEN folha_despesa_lancamento

    WHEN folha_despesa_lancamento IS NULL THEN folha_comissao_lancamento

    END AS LANCAMENTO

    FROM         folha_despesa FULL OUTER JOIN
                          folha_lancamento ON folha_despesa.folha_despesa_codigo = folha_lancamento.folha_lancamento_codigo FULL OUTER JOIN
                          folha_comissao ON folha_lancamento.folha_lancamento_codigo = folha_comissao.folha_comissao_codigo
    ORDER BY folha_lancamento.folha_lancamento_codigo

     

    Estou tendo o seguinte retorno:

    COMDESC               COMVALOR           DESPDESC          DESPVALOR        LANCAMENTO

    comissao1                5,00                       null                       null                       500

    comissao2                8,00                       null                       null                       500

    comissao3               40,00                      null                       null                       501

    null                           null                        despesa1              20,00                    500

    null                           null                        despesa2              10,00                    501

     

     

    Gostaria de ter o seguinte retorno:

    COMDESC               COMVALOR           DESPDESC          DESPVALOR        LANCAMENTO

    comissao1                5,00                       despesa1              20,00                     500

    comissao2                8,00                       null                       null                        500

    comissao3               40,00                      despesa2              10,00                     501

     

     

    Existe como fazer isso, ja tentei algumas coisas mas o maximo que obtive foi:

    COMDESC               COMVALOR           DESPDESC          DESPVALOR        LANCAMENTO

    comissao1                5,00                       despesa1              20,00                     500

    comissao2                8,00                       despesa1              20,00                     500

    comissao3               40,00                      despesa2              10,00                     501

    Ou seja, a descricao e o valor despesa está sendo repetido.

     

    Alguem tem uma ideia?

     

    [ ]´s

     

     

    sexta-feira, 24 de outubro de 2008 18:57

Todas as Respostas

  • Boa Noite,

     

    Seu SQL Server é 2005 ?

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 24 de outubro de 2008 21:23
  • Olá Gustavo, é SQL Server 2005.

     

    [ ]´s

    sábado, 25 de outubro de 2008 13:12
  • E aí Gustavo, alguma idéia?

     

    [ ]´s

    segunda-feira, 27 de outubro de 2008 17:47
  • se nao quizer usar CTE e partir para uma derivada vc. pode agrupar novamente todo seu select

     

    exemplo

     

     

     select tipo, sum(valor) as valor

    from (

     

                 select tipo, valor from tabela ...

    ) Drv

     

    esse e apenas um exemplo, tente tratar seu primeiro select com se fosse uma tabela assim vc. pode agrupar usando o proprio select, no sql 2005 vc. pode usar um CTE, mais vou deixar para o Gustavo a explicacao mais hard...

     

    Abs;

    terça-feira, 28 de outubro de 2008 09:35