none
Duvida SQL - Fazer subtração em tabelas diferentes RRS feed

  • Pergunta

  • Boa tarde pessoal, sou novo no forum.. estou com um problema aqui e nao consegui resolver de nenhuma maneira.

    Tenho duas consultas, uma que me traz o faturamento por produtos e outra que me traz as devoluçoes por produto. Sao tabelas diferentes, uma de entrada e outra de saida. 

    Quero que o valor da minha tabela de vendas diminua o valor da tabela de compras. Alguma dica para isso???

    Segue minhas duas querys.

    DEVOLUÇOES

    SELECT SB1.B1_GRUPO AS GRUPO, SBM.BM_DESC AS DESCRICAO, SB1.B1_DESC AS PRODUTO,
    SUM( D1_QUANT ) AS D1_QUANT , 
    SUM( D1_TOTAL ) AS D1_TOTAL ,
    SUM( D1_TOTAL + D1_VALIPI + D1_ICMSRET ) AS D1_VALBRUT
    FROM SD1010 SD1
    INNER JOIN SF4010 AS SF4 ON F4_CODIGO = D1_TES
    INNER JOIN SB1010 AS SB1 ON B1_COD = D1_COD
    INNER JOIN SBM010 AS SBM ON BM_GRUPO = B1_GRUPO
    WHERE D1_EMISSAO BETWEEN '20121201' AND '20121231'
    AND D1_TIPO = 'D'
    AND SF4.F4_DUPLIC = 'S' 
    AND SF4.F4_ESTOQUE = 'S' 
    AND SF4.D_E_L_E_T_ = ''
    AND SB1.D_E_L_E_T_ = ''
    AND SBM.D_E_L_E_T_ = ''
    AND SD1.D_E_L_E_T_ = ''
    GROUP BY SB1.B1_GRUPO, SBM.BM_DESC, SB1.B1_DESC


    VENDAS

    SELECT SB1.B1_GRUPO AS GRUPO, SBM.BM_DESC AS DESCRICAO, SB1.B1_DESC AS PRODUTO, SF4.F4_TEXTO,
    SUM( SD2.D2_QUANT ) AS QTDADE , 
    SUM( SD2.D2_TOTAL ) AS VALMER, 
    SUM( SD2.D2_VALBRUT ) AS VALFAT FROM SD2010 SD2 
    INNER JOIN SB1010 AS SB1 ON SB1.B1_COD = SD2.D2_COD 
    INNER JOIN SA1010 AS SA1 ON SA1.A1_COD = SD2.D2_CLIENTE AND SA1.A1_LOJA = SD2.D2_LOJA 
    INNER JOIN SA3010 AS SA3 ON SA3.A3_COD = SA1.A1_VEND 
    INNER JOIN SF4010 AS SF4 ON SF4.F4_CODIGO = SD2.D2_TES 
    INNER JOIN SBM010 AS SBM ON SBM.BM_GRUPO = SB1.B1_GRUPO 
    WHERE D2_EMISSAO BETWEEN '20121201' AND '20121231' 
    AND SA1.A1_VEND BETWEEN ''  AND  'ZZZZZZ' 
    AND SB1.B1_GRUPO BETWEEN ''  AND  'ZZZZ' 
    AND SA1.A1_COD BETWEEN ''  AND  'ZZZZZZZZZZ' 
    AND SA1.A1_VEND <> '' 
    AND SF4.F4_DUPLIC = 'S' 
    AND SF4.F4_ESTOQUE = 'S' 
    AND SD2.D_E_L_E_T_ = '' 
    AND SB1.D_E_L_E_T_ = '' 
    AND SA1.D_E_L_E_T_ = '' 
    AND SA3.D_E_L_E_T_ = '' 
    AND SF4.D_E_L_E_T_ = '' 
    AND SBM.D_E_L_E_T_ = '' 
    GROUP BY SB1.B1_GRUPO, SBM.BM_DESC, SB1.B1_DESC

    Valeu!!!

    quinta-feira, 10 de janeiro de 2013 17:40

Todas as Respostas

  • Olá Willyan

    Seja bem vidno ao forum,

    Não entendi muito bem sua necessidade, você deseja fazer uma rotina para reduzir as quandiades de estoques conforme a compra vai sendo efetuada? ou apenas montar um select que lhe retorne a estoque - vendas?


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS, MCITP, MCT.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    segunda-feira, 14 de janeiro de 2013 10:10
    Moderador
  • Olá Willyan,

    Não entendi sua dúvida.

    Neste exemplo ,você postou duas querys, sendo uma para retornar as devoluções, e outra as vendas. Mas sua pergunta foi como abater o valor das vendas nas compras.

    Att.

    Rafael Costa

    MCP, MTA

    www.rcsalgueiro.com


    terça-feira, 15 de janeiro de 2013 11:26