Ir para conteúdo
Fórum Script Brasil
  • 0

saldo anterior


ajgemeos

Pergunta

boa tarde...sou inciante e preciso de uma ajuda, como faço para calcular o saldo anterior apartir de entradas e saidas? neste relatorio seria apresnetado o SALDO ANTERIOR, ENTRADAS, SAIDAS e SALDO ARUAL, conforme periodo(data incial e data final) informado por usuario.Seria possível se feito em SQL? obrigado.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
boa tarde...sou inciante e preciso de uma ajuda, como faço para calcular o saldo anterior apartir de entradas e saidas? neste relatorio seria apresnetado o SALDO ANTERIOR, ENTRADAS, SAIDAS e SALDO ARUAL, conforme periodo(data incial e data final) informado por usuario.Seria possível se feito em SQL? obrigado.

Oi, 'ajgemeos' !

É possível fazer isso em SQL, sim. Mas você forneceu pouca informação para poder ser ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

SELECT PRODUTO.NOME AS NOME, 
    (SELECT (SUM(CASE WHEN(MOV.TIPO = 'ENTRADA')THEN MOV.QUANTIDADE ELSE '0' END))
     FROM MOV
     INNER JOIN PRODUTO ON PRODUTO.IDMOV = MOV.IDMOV
     WHERE MOV.DATAEMISSAO <'2010-08-01' --data inicio
     GROUP BY PRODUTO.NOME)      -    
    (SELECT (SUM(CASE WHEN(MOV.TIPO = 'SAIDA')THEN MOV.QUANTIDADE ELSE '0' END))
     FROM MOV
     INNER JOIN PRODUTO ON PRODUTO.IDMOV = MOV.IDMOV
     WHERE MOV.DATAEMISSAO <'2010-08-01' --data inicio
     GROUP BY PRODUTO.NOME)  
FROM MOV
INNER JOIN PRODUTO ON PRODUTO.IDMOV = MOV.IDMOV 
WHERE AND MOV.DATAEMISSAO BETWEEN '2010-08-01' AND '2010-08-31'
GROUP BY PRODUTO.NOME
ORDER BY PRODUTO.NOME

Coloquei parte do código acima que faz apenas o cálculo do saldo anterior, ou pelo menos deveria retornar os valores do cálculo do SALDO_ANTERIOR para cada produto, mas retorna o erro:

Código do erro 512, estado do SQL 21000: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

Linha 1, coluna 1, caso eu retire o GROUP BY da subconsulta até funciona, mas repete o valor do cálculo do saldo_anterior para todos os produtos, pessoal agredeço pela atenção, se aguem poder me ajudar...falou

Link para o comentário
Compartilhar em outros sites

  • 0

bom Denis, valeu pela força, por inexperiência minha, quis postar parte do código, acabei complicando mais, vou passar o código na integra, ele até roda, mas como já mencionado, os valores do SALDO ANTERIOR e SALDO ATUAL saem repetidos para todos os produtos, na verdade há mais um relaciomento entre tabelas, desculpe mais uma vez, agradeço pela força..

SELECT TPRD.NOMEFANTASIA AS NOME,
    (SELECT (SUM(CASE WHEN(TMOV.CODTMV IN ('1.2.02', '1.2.03', '1.2.05'))THEN TITMMOV.QUANTIDADE ELSE '0' END))
     FROM TMOV
     INNER JOIN TITMMOV ON (TITMMOV.IDMOV = TMOV.IDMOV AND TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA)

     INNER JOIN TPRD ON (TPRD.IDPRD = TITMMOV.IDPRD AND TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA)
      WHERE TMOV.CODCOLIGADA = '1' AND TMOV.CODTMV IN ('1.2.02', '1.2.03', '1.2.05') 
        AND tprd.codigoprd NOT like '01%' AND tprd.codigoprd NOT like '04.002%'
        AND tprd.codigoprd NOT like '05%' AND tprd.codigoprd NOT like '06%'
        AND tprd.codigoprd NOT like '07%' AND tprd.codigoprd NOT like '08%'
        AND tprd.codigoprd NOT like '09%' AND tprd.codigoprd NOT like '10%'
        AND tprd.codigoprd NOT like '11%' AND tprd.codigoprd NOT like '12%'
        AND TMOV.STATUS <> 'C' -- AND TPRD.codigoprd = '03.005.00003'
        AND TMOV.DATAEMISSAO <'2010-08-01')  --data inicio
    -
    (SELECT(SUM(CASE WHEN(TMOV.CODTMV IN ('1.1.04'))THEN TITMMOV.QUANTIDADE ELSE '0' END))
    FROM TMOV
    INNER JOIN TITMMOV ON (TITMMOV.IDMOV = TMOV.IDMOV 
        AND TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA)

    INNER JOIN TPRD ON (TPRD.IDPRD = TITMMOV.IDPRD
        AND TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA)
    WHERE TMOV.CODCOLIGADA = '1' AND TMOV.CODTMV IN ('1.1.04')
        AND tprd.codigoprd NOT like '01%'
        AND tprd.codigoprd NOT like '04.002%'
        AND tprd.codigoprd NOT like '05%'
        AND tprd.codigoprd NOT like '06%'
        AND tprd.codigoprd NOT like '07%'
        AND tprd.codigoprd NOT like '08%'
        AND tprd.codigoprd NOT like '09%'
        AND tprd.codigoprd NOT like '10%'
        AND tprd.codigoprd NOT like '11%'
        AND tprd.codigoprd NOT like '12%'
        AND TPRD.CODIGOPRD NOT LIKE '01%'
        AND TMOV.STATUS <> 'C'  -- AND TPRD.codigoprd = '03.005.00003'
        AND TMOV.DATAEMISSAO <'2010-08-01') AS SALDO_ANTERIOR,  --data inicio
        SUM(CASE WHEN(TMOV.CODTMV IN ('1.2.02', '1.2.03', '1.2.05'))THEN TITMMOV.QUANTIDADE ELSE '0' END)AS TOT_ENTRADAS,
        SUM(CASE WHEN(TMOV.CODTMV IN ('1.1.04'))THEN TITMMOV.QUANTIDADE ELSE '0' END) AS TOTAL_BAIXAS,

        (SELECT(SUM(CASE WHEN(TMOV.CODTMV IN ('1.2.02', '1.2.03', '1.2.05'))THEN TITMMOV.QUANTIDADE ELSE '0' END))
FROM TMOV
            INNER JOIN TITMMOV
                ON (TITMMOV.IDMOV = TMOV.IDMOV
                AND TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA)

            INNER JOIN TPRD
                ON (TPRD.IDPRD = TITMMOV.IDPRD
                AND TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA)
        WHERE
                TMOV.CODCOLIGADA = '1'
            AND TMOV.CODTMV IN ('1.2.02', '1.2.03', '1.2.05')
            AND tprd.codigoprd NOT like '01%'
            AND tprd.codigoprd NOT like '04.002%'
            AND tprd.codigoprd NOT like '05%'
            AND tprd.codigoprd NOT like '06%'
            AND tprd.codigoprd NOT like '07%'
            AND tprd.codigoprd NOT like '08%'
            AND tprd.codigoprd NOT like '09%'
            AND tprd.codigoprd NOT like '10%'
            AND tprd.codigoprd NOT like '11%'
            AND tprd.codigoprd NOT like '12%'
            AND TMOV.STATUS <> 'C'
 --           AND TPRD.codigoprd = '03.005.00003'
            AND TMOV.DATAEMISSAO <='2010-08-31')  --data atual
        -
        (SELECT(SUM(CASE WHEN(TMOV.CODTMV IN ('1.1.04'))THEN TITMMOV.QUANTIDADE ELSE '0' END))
        FROM TMOV
            INNER JOIN TITMMOV
                ON (TITMMOV.IDMOV = TMOV.IDMOV
                AND TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA)

            INNER JOIN TPRD
                ON (TPRD.IDPRD = TITMMOV.IDPRD
                AND TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA)
        WHERE
                TMOV.CODCOLIGADA = '1'
            AND TMOV.CODTMV IN ('1.1.04')
            AND tprd.codigoprd NOT like '01%'
            AND tprd.codigoprd NOT like '04.002%'
            AND tprd.codigoprd NOT like '05%'
            AND tprd.codigoprd NOT like '06%'
            AND tprd.codigoprd NOT like '07%'
            AND tprd.codigoprd NOT like '08%'
            AND tprd.codigoprd NOT like '09%'
            AND tprd.codigoprd NOT like '10%'
            AND tprd.codigoprd NOT like '11%'
            AND tprd.codigoprd NOT like '12%'
            AND TMOV.STATUS <> 'C'
--            AND TPRD.codigoprd = '03.005.00003'
            AND TMOV.DATAEMISSAO <='2010-08-31')as saldo_atual  --data atual


FROM TMOV
INNER JOIN TITMMOV ON (TITMMOV.IDMOV = TMOV.IDMOV AND TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA)
INNER JOIN TPRD     ON (TPRD.IDPRD = TITMMOV.IDPRD AND TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA)
WHERE     TMOV.CODCOLIGADA = '1'
    AND TMOV.CODTMV IN ('1.1.04', '1.2.02', '1.2.03', '1.2.05')
    AND tprd.codigoprd NOT like '01%'
    AND tprd.codigoprd NOT like '04.002%'
    AND tprd.codigoprd NOT like '05%'
    AND tprd.codigoprd NOT like '06%'
    AND tprd.codigoprd NOT like '07%'
    AND tprd.codigoprd NOT like '08%'
    AND tprd.codigoprd NOT like '09%'
    AND tprd.codigoprd NOT like '10%'
    AND tprd.codigoprd NOT like '11%'
    AND tprd.codigoprd NOT like '12%'
    AND TMOV.STATUS <> 'C' -- AND TPRD.codigoprd = '03.005.00003'
    AND tmov.dataemissao BETWEEN '2010-08-01' AND '2010-08-31'
GROUP BY TPRD.NOMEFANTASIA
        --TPRD.SALDOGERALFISICO,
        --TPRD.CODUNDCONTROLE
ORDER BY TPRD.NOMEFANTASIA

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'ajgemeos'

Favor enviar a estrutura das tabelas. Estou com dificuldade de entender onde está a parte 1 de 1:N do relacionamento MOV x PRODUTO

Pode, por favor, fazer o que te pedi aqui?

Link para o comentário
Compartilhar em outros sites

  • 0

acredito que a estrutura das tabelas sejam:

TMOV 1--------n TITMMOV n ---------1 TPRD

o que possuo do banco são os relacionamentos (que tenho que decifrar) para poder gerar os ralatórios...caso não entenda ainda ou eu não tenha passado a informação que deseja, só me questionar novamente...muito obrigado por enquanto...falou..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...