Fórum Consultar parcelas Vencidas/à vencer/Quitadas #562980
26/09/2016
0
Estou quebrando a cabeça com algo que se parece simples.
Na minha aplicação, o usuário faz um filtro por data inicial e final, e o sistema precisa trazer as parcelas "se houver" com os 3 status separadamente; "Total Vencido", 'Total a vencer' e "Total Quitado", mas só consigo trazer dois status apenas conforme a consulta que estou deixando como amostra.
Parcelas a pagar "Não vencidas"
Parcelas quitadas
O campo
Creio que deve ser alguma consulta que pegue a data atual e compara se existe uma parcela com vencimento menor que a data corrente e com o status = 0, assim a consulta informará que existem parcelas vencidas.
Obrigado a todos.
Fernando Alves
Curtir tópico
+ 0Post mais votado
26/09/2016
E coloque um campo fixo, STATUS por exemplo.
'VENCIDO' as STATUS
'PAGO' as STATUS
'A VENCER' as STATUS.
Assim você tem uma visão completa
Luiz Santos
Gostei + 1
Mais Posts
26/09/2016
Luiz Santos
Assim, se ele não estiver pago e a data de vendimento for menor que hoje, quer dizer que está vencido
Grande abraço
Gostei + 0
26/09/2016
Fernando Alves
O problema é que essa consulta que vc me passou, implica na mesma consulta de parcelas a pagar. Repare que a sintaxe é a mesma, diferenciando apenas da função Now() na cláusula where.
A questão tb é que o usuário faz o filtro por data inicial e final.
Vencidos:
A pagar
Resultado consulta 1: 256282,41
Resultado consulta 2: 256282,41
Eu teria que obter valores distintos entre as consultas, e não os mesmos como mostra na consulta acima. A consulta de parcelas vencidas esta trazendo as "vencidas" junto com "a pagar", e a consulta "a pagar" esta fazendo o mesmo.
Gostei + 0
26/09/2016
Fernando Alves
Gostei + 0
27/09/2016
Fernando Alves
Na minha tabela 'tbFinanceiro' eu tenho os campos 'DataVencimento', 'Status' e 'Valor', essa tabela ja esta alimentada com dados desde o começo do ano.
Eu tenho um gráfico na minha aplicação que me mostra 2 status apenas, ou seja ele faz um "group by" pelo campo status e me retorna as parcelas "Pagas" e "Não pagas". Mas agora, o cliente exigiu detalhes do gráfico que mostra "Não pagas", pois alguns registros desta consulta estão simplesmente a vencer e outros realmente vencidos. Então é por isso que preciso com apenas esses campos na tabela, mostrar 3 status diferentes; "Quitados", "A pagar" e "Vencidas".
Observações:
1)- No programa tem a "data inicial" e "data final" para o usuário escolher, o sistema tinha que trazer esses dados por esse período.
2)- Como o status de "A pagar" e "Vencidos" seriam o mesmo, ou seja "status = 0", então o resultado da consulta "A pagar" não deve somar os registros das parcelas "Vencidas". O mesmo se procede a ambos.
Consegue montar uma ou mais consultas que me traga isso separadamente ?
Exemplo na tabela;
Valor | status | Vencimento
---------------------------------
100,00 | 0 | 20/09/2016
200,00 | 0 | 20/09/2016
150,00 | 0 | 20/10/2016
450,00 | 0 | 20/10/2016
120,00 | 1 | 20/08/2016
700,00 | 1 | 20/08/2016
------------------------------
Resultado da consulta:
300,00 = Vencidos
600,00 = A pagar
820,00 = Quitados
Não tem problema se caso só conseguir em consultas separadas, eu só preciso destes dados distintos entre ambos.
Obrigado Luiz!
Gostei + 0
27/09/2016
Fernando Alves
A ideia pode servir a outros também!
Vlw :)
Gostei + 0
27/09/2016
Luiz Santos
Não desmerecendo o seu problema, ele é até simples comparado com as buchas que eu pego...rs
Como não estou com meu note aqui, fiz no SQL Server.
Adapte a lógica do SELECT que criei para o MySQL, por exemplo, trocando o GETDATE() por NOW().
A primeira parte com a tabela temporária, só gerei para poder fazer o SELECT, você não precisa fazer ai... use a sua tabela.
Segue o código.
CREATE TABLE #tbFinanceiro(
VALOR DECIMAL(18,2),
[STATUS] INT,
VENCIMENTO DATE
)
INSERT INTO #tbFinanceiro
(Valor, status, Vencimento)
VALUES
(100 , 0 , CONVERT(DATE, '20/09/2016',103)),
(200 , 0 , CONVERT(DATE, '20/09/2016',103)),
(150 , 0 , CONVERT(DATE, '20/10/2016',103)),
(450 , 0 , CONVERT(DATE, '20/10/2016',103)),
(120 , 1 , CONVERT(DATE, '20/08/2016',103)),
(700 , 1 , CONVERT(DATE, '20/08/2016',103))
SELECT 'A PAGAR' AS TIPO
, SUM(VALOR) AS VALOR
FROM #tbFinanceiro
WHERE VENCIMENTO BETWEEN '2016-01-01' -- DT INICIAL
AND '2016-12-31' -- DT_FINAL
AND STATUS = 0
AND VENCIMENTO >= GETDATE()
UNION ALL
SELECT 'VENCIDO' AS TIPO
, SUM(VALOR) AS VALOR
FROM #tbFinanceiro
WHERE VENCIMENTO BETWEEN '2016-01-01' -- DT INICIAL
AND '2016-12-31' -- DT_FINAL
AND STATUS = 0
AND VENCIMENTO < GETDATE()
UNION ALL
SELECT 'QUITADO' AS TIPO
, SUM(VALOR) AS VALOR
FROM #tbFinanceiro
WHERE VENCIMENTO BETWEEN '2016-01-01' -- DT INICIAL
AND '2016-12-31' -- DT_FINAL
AND STATUS = 1
Gostei + 1
27/09/2016
Fernando Alves
Era o que eu precisava mesmo, muito obrigado!
Estou apenas incrementando adicionando outros campos da tabela que também preciso.
Sucesso pra você e até a próximo!
Abraços.
Gostei + 0
27/09/2016
Luiz Santos
Precisando posta a duvida ai que estou sempre olhando.
Grande abs
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)