Usuário com melhor resposta
Saldo Atual e dados de credito e Debito

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?
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
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
- Editado Kanaãm Luz Romero Rodrigues terça-feira, 11 de abril de 2017 21:08
-
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
-
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
-