none
Saldo Atual e dados de credito e Debito RRS feed

  • Pergunta

  • Boa tarde!

    Preciso da ajuda de vocês..

    Estou tentando montar um relatório para a gerencia da contabilidade onde necessito mostrar o saldo atual, os valores de credito e debito de determinado mês

    O problema está quando:

    Eu consigo achar o saldo atual  colocando o campo data >= 28/02/2017 ( colocando o ultimo dia do mês que quero analisar)

    SELECT  '01' AS EMPRESA, '' AS FILIAL,  T.CT7_CONTA CONTA, 'SAT'SALDO_ATUAL,
    (SUM(T.CT7_DEBITO) - SUM(T.CT7_CREDIT))  VL_SALDO_ATU
    FROM CT7010 T
    WHERE T.CT7_TPSALD = 1
    AND T.D_E_L_E_T_ <> '*'
    AND T.CT7_DATA <='20170228' 
    AND T.CT7_CONTA = '210100620'
    GROUP BY CT7_CONTA

    e consigo achar o valor do credito e debito colocando o período data entre dois valores  data between '01/02/2017' and '28/02/2017'

    SELECT '01' EMPRESA, C.CT2_FILIAL FILIAL,  
            C.CT2_DATA, C.CT2_DEBITO CONTA_FORNECEDOR, C.CT2_CREDIT CONTA_CREDITO,
            C.CT2_DEBITO CONTA_DEBITO, C.CT2_VALOR VALOR, C.CT2_HIST HIST,
    FROM CT2010 C
    WHERE C.D_E_L_E_T_ <> '*'
    AND C.CT2_TPSALD = 1
    AND C.CT2_DEBITO= '210100620'

    Como poderia montar essa view para posteriormente utilizar em uma aplicação onde o período ficasse a critério do usuário final?

    terça-feira, 11 de abril de 2017 20:25

Respostas

  • Acho que seria algo mais ou menos assim:

    SELECT 'SALDO ATUAL' AS TIPO, T.CT7_CONTA CONTA_CREDITO, '' CONTA_DEBITO, '' AS HISTORICO, '' AS DATA, (SUM(T.CT7_DEBITO) - SUM(T.CT7_CREDIT)) VL_SALDO_ATU FROM CT7010 T WHERE T.CT7_TPSALD = 1 AND T.D_E_L_E_T_ <> '*' AND T.CT7_DATA <= @DTFIM AND T.CT7_CONTA = @CONTA GROUP BY CT7_CONTA UNION ALL SELECT CASE WHEN C.CT2_DC = '1' THEN 'DEBITO' WHEN C.CT2_DC = '2' THEN 'CREDITO' WHEN C.CT2_DC = '3' THEN 'PARTIDA DOBRADA' WHEN C.CT2_DC = '4' THEN 'CONT. HIST.' WHEN C.CT2_DC = '5' THEN 'RATEIO' WHEN C.CT2_DC = '6' THEN 'LANC. PADRAO' END AS TIPO, C.CT2_CREDIT CONTA_CREDITO, C.CT2_DEBITO CONTA_DEBITO, C.CT2_HIST HISTORICO, C.CT2_DATA DATA, C.CT2_VALOR VALOR FROM CT2010 C WHERE C.D_E_L_E_T_ <> '*' AND C.CT2_TPSALD = 1 AND C.CT2_DEBITO= @CONTA AND C.CT2_DATA BETWEEN @DTINICIO AND @DTFIM



    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Marcado como Resposta carine.couto quarta-feira, 12 de abril de 2017 18:18
    quarta-feira, 12 de abril de 2017 12:45

Todas as Respostas

  • Boa tarde Carine,

    Primeiro você precisaria verificar pelo campo CT2_DC se é um débito, crédito, partida dobrada ou histórico, com isso seria possível chegar em um número mais correto, pois em cada caso você deverá somar/subtrair o valor.

    Para criar a view de forma dinâmica, basta não filtrar por data e quando o usuário for fazer o select você preenche as datas baseadas nos parâmetros que o usuário informar.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski


    terça-feira, 11 de abril de 2017 21:04
  • Kanaam , muito obrigada por sua ajuda.

    Seu conhecimento com as tabelas do Totvs esta sendo de grande ajuda pra mim.

    A minha dificuldade esta sendo em saber como vou montar essa estrutura, sendo que pra saber o saldo atual

    eu tenho que pesquisar pela data <= ( data informada pelo usuário) ( ex.: data <= 28/02/2017 )

     e o credido e o debito eles tem que informar a data do período ( 01/02/2017 a 28/02/2017).


    TIPO                 | CONTA       |  HISTORICO |DATA                |       VALOR

    SALDO ATUAL    |  2 1 0 9                                                    |  89087,90

    CREDITO           | 2 1 0 9     | NF JASK        | 21/02/2017     | 90,000

    CREDITO           | 2 1 0 9     | NF JASK        | 22/02/2017     | 80,000

    ......

    Os valores já sei como retirar porem essa condição que para o saldo atual eu  a data tem que ser <= e parao credito e debito  tem que ser o periodo que nao estou sabendo montar ...

    afinal nem sei se é possivel montar uma estrutura assim

    quarta-feira, 12 de abril de 2017 12:11
  • Acho que seria algo mais ou menos assim:

    SELECT 'SALDO ATUAL' AS TIPO, T.CT7_CONTA CONTA_CREDITO, '' CONTA_DEBITO, '' AS HISTORICO, '' AS DATA, (SUM(T.CT7_DEBITO) - SUM(T.CT7_CREDIT)) VL_SALDO_ATU FROM CT7010 T WHERE T.CT7_TPSALD = 1 AND T.D_E_L_E_T_ <> '*' AND T.CT7_DATA <= @DTFIM AND T.CT7_CONTA = @CONTA GROUP BY CT7_CONTA UNION ALL SELECT CASE WHEN C.CT2_DC = '1' THEN 'DEBITO' WHEN C.CT2_DC = '2' THEN 'CREDITO' WHEN C.CT2_DC = '3' THEN 'PARTIDA DOBRADA' WHEN C.CT2_DC = '4' THEN 'CONT. HIST.' WHEN C.CT2_DC = '5' THEN 'RATEIO' WHEN C.CT2_DC = '6' THEN 'LANC. PADRAO' END AS TIPO, C.CT2_CREDIT CONTA_CREDITO, C.CT2_DEBITO CONTA_DEBITO, C.CT2_HIST HISTORICO, C.CT2_DATA DATA, C.CT2_VALOR VALOR FROM CT2010 C WHERE C.D_E_L_E_T_ <> '*' AND C.CT2_TPSALD = 1 AND C.CT2_DEBITO= @CONTA AND C.CT2_DATA BETWEEN @DTINICIO AND @DTFIM



    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Marcado como Resposta carine.couto quarta-feira, 12 de abril de 2017 18:18
    quarta-feira, 12 de abril de 2017 12:45
  • Obrigada!
    quarta-feira, 12 de abril de 2017 18:19