none
QUERY PARA SOMAR UMA COLUNA DUAS VEZES POR PARAMETROS DISTINTOS RRS feed

  • Pergunta

  • Saudações a todos.


    Tenho a seguinte tabela tb_Venda com as seguintes colunas:

    -  Cod_Cliente
    -  Cliente
    -  Data_Venda
    -  V_Tot
    - Grupo
    - StatusVenda

    Suponhamos que esta tabela esteja preenchida da seguinte maneira:

    Cod_Cliente     Cliente        Dt_Venda        V_Total        Grupo
    001                     JOAO        15/01/2007       150,00          010
    001                     JOAO         20/01/2007      200,00          010
    001                     JOAO         21/01/2007      300,00          010
    002                     MARIA        15/01/2007      200,00          011
    002                     MARIA        20/01/2007      200,00          011
    001                     MARIA        21/01/2007      200,00          011

    Em um relatório quero apresentar os seguintes resultados:

    Item 1 - A soma das vendas ocorridas entre 20/01/2007 e 21/01/2007
    Item 2 - A soma das vendas ocorridas no período anterior a 20/01/2007
    Item 3 - A soma das vendas dos itens 1 e 2.

    Teria que aparecer no relatório algo como:

    CLIENTE          VL (item 1)    VL (item2)     VL (item3)
    JOAO                      500,00          150,00            650,00
    MARIA                    400,00           200,00            600,00

    Tentei fazer como na query apresentada abaixo, mas o resultado do Item2 não é satisfatório:

    SELECT COD_CLIENTE, CLIENTE, SUM([V_TOT]) AS TOTAL1, (SELECT SUM([V_TOT]) FROM TB_VENDA WHERE STATUSVENDA = 'PENDENTE' AND GRUPO ='1' AND DATA_VENDA BETWEEN #01-01-2000# AND #30-01-2007#)AS TOTAL2, (TOTAL1 + TOTAL2) AS TOTAL3 FROM TB_VENDA WHERE DATA_VENDA BETWEEN #01-01-2000# AND #31-12-2007# AND GRUPO = '1' AND STATUSVENDA = 'PENDENTE' GROUP BY COD_CLIENTE, CLIENTE

    O RESULTADO RETORNADO FOI:

    CLIENTE          VL (item 1)    VL (item2)     VL (item3)
    JOAO                      500,00          350,00            850,00
    MARIA                    400,00           350,00            750,00

    Notem que no valor do item2 ele não separa por cliente e sim faz a soma de todas as vendas que estão atendendo aos critérios informados, quando o certo era somar por cliente, dentro das condições estabelecidas.

    domingo, 18 de fevereiro de 2007 16:46

Respostas

  • PESSOAL, CONSEGUI RESOLVER MEU PROBLEMA UTILIZANDO A QUERY ABAIXO. MUITO OBRIGADO A TODOS QUE VISUALIZARAM O POST NA TENTATIVA DE AJUDAR! UM GRANDE ABRAÇO!



    SELECT
    A.CLIENTE, SUM([A.V_TOT]) AS TOTAL1, (SELECT SUM([B.V_TOT]) FROM TB_VENDA B WHERE B.STATUSVENDA =
    'PENDENTE' AND B.GRUPO ='1' AND B.DATA_VENDA BETWEEN #01-01-1900# AND #19-01-2007# AND B.CLIENTE = A.CLIENTE) AS TOTAL2, (TOTAL1 + TOTAL2) AS TOTAL3 FROM TB_VENDA A WHERE A.DATA_VENDA BETWEEN #20-01-2007# AND #31-01-2007# AND A.GRUPO = '1' AND A.STATUSVENDA = 'PENDENTE' GROUP BY A.CLIENTE

    domingo, 18 de fevereiro de 2007 23:19