Duvida grande que parece ser bem facil
tenho uma tabela de títulos a receber...
legenda do status das parcelas : P = paga, A = aberta
A tabela preenchida ficaria assim:
campos da tabela: num_titulo, num_parcela. cod_cliente, data_vencimento, data_quitacao, valor_da_venda, qtde_parcelas , stutus_parcela
1234 | 1 | 23 | 11/02/2015 | 11/02/2015 | 150,00 | 3 | P
1234 | 2 | 23 | 11/03/2015 | 11/02/2015 | 150,00 | 3 | P
1234 | 3 | 23 | 11/04/2015 | NULL | 150,00 | 3 | A
amigos estou precisando do seguinte
selecionar os contratos que foram quitados completos em um período banco de dados PostgreSQL 8.2
consigo selecionar mais vem com parcelas em abertas pelo meio, não é o que quero alguém pode me ajudar??? fico bem grato e obrigado a todos
legenda do status das parcelas : P = paga, A = aberta
A tabela preenchida ficaria assim:
campos da tabela: num_titulo, num_parcela. cod_cliente, data_vencimento, data_quitacao, valor_da_venda, qtde_parcelas , stutus_parcela
1234 | 1 | 23 | 11/02/2015 | 11/02/2015 | 150,00 | 3 | P
1234 | 2 | 23 | 11/03/2015 | 11/02/2015 | 150,00 | 3 | P
1234 | 3 | 23 | 11/04/2015 | NULL | 150,00 | 3 | A
amigos estou precisando do seguinte
selecionar os contratos que foram quitados completos em um período banco de dados PostgreSQL 8.2
consigo selecionar mais vem com parcelas em abertas pelo meio, não é o que quero alguém pode me ajudar??? fico bem grato e obrigado a todos
Marlos Silva
Curtidas 0
Respostas
Fernando C
11/02/2015
pesquise sobre as cláusulas where e between:
http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx
http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx
http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx
http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx
GOSTEI 0
Thiago Santana
11/02/2015
pesquise sobre as cláusulas where e between:
http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx
http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx
http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx
http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx
O seu select será mais ou menos isso aqui:
SELECT num_titulo, num_parcela. cod_cliente, data_vencimento, data_quitacao, valor_da_venda, qtde_parcelas , stutus_parcela FROM TABELA_TITULOS WHERE ((stutus_parcela = 'P') AND (data_quitacao BETWEEN '01/01/2010' AND '30/01/2010'))
Pode está com erros pois não tenho sua base de dados para testar!
Espero ter colaborado!
GOSTEI 0
Marlos Silva
11/02/2015
obrigador pela a ajuda mais não funcionou 100% pois traz algumas parcelas quitadas e as demais que ainda não foram pagas ficam para traz, informando que o contrato completo já foi pago...
seria mais ou menos assim..
ex: tenho um contrato = 123 e o mesmo tem 5 parcelas no total certo ? 3 delas estão pagas 01 | 02 | 03 e esta faltando duas correto ?
o código que você passou está fazendo o seguinte:
num_contra | num_parc | Situacao | data_pgto | total_de_parcelas | total_dos_titulos | valor_da_parcela |
123 | 01 | P | 02/01/2014 | 5 | 250,00 | 50.00 |
123 | 02 | P | 02/02/2014 | 5 | 250,00 | 50.00 |
123 | 03 | P | 02/03/2014 | 5 | 250,00 | 50.00 |
****************************************************************************************************************************************************
se o contrato não tem as 5 parcelas pagas, então o contrato não esta liquidado certo ?
parcelas restantes do contrato 123 = 04 | 05 que estão com o status 'A' de abertas
123 | 04 | A | __ /__ /___ | 5 | 250,00 | 50.00 |
123 | 05 | A | __ /__ /___ | 5 | 250,00 | 50.00 |
ou seja esse contrato não tem que aparecer, pq não tem todos os títulos pagos, mesmo que tenha alguma parcela entre o período que informei.
acho que se fosse filtrado assim daria cero: quando a data de pagamento da ultima parcela quitada for na mesma data do filtro, então sabemos que é a ultima parcela representa que o contrato esta pago por completo.
seria mais ou menos assim..
ex: tenho um contrato = 123 e o mesmo tem 5 parcelas no total certo ? 3 delas estão pagas 01 | 02 | 03 e esta faltando duas correto ?
o código que você passou está fazendo o seguinte:
num_contra | num_parc | Situacao | data_pgto | total_de_parcelas | total_dos_titulos | valor_da_parcela |
123 | 01 | P | 02/01/2014 | 5 | 250,00 | 50.00 |
123 | 02 | P | 02/02/2014 | 5 | 250,00 | 50.00 |
123 | 03 | P | 02/03/2014 | 5 | 250,00 | 50.00 |
****************************************************************************************************************************************************
se o contrato não tem as 5 parcelas pagas, então o contrato não esta liquidado certo ?
parcelas restantes do contrato 123 = 04 | 05 que estão com o status 'A' de abertas
123 | 04 | A | __ /__ /___ | 5 | 250,00 | 50.00 |
123 | 05 | A | __ /__ /___ | 5 | 250,00 | 50.00 |
ou seja esse contrato não tem que aparecer, pq não tem todos os títulos pagos, mesmo que tenha alguma parcela entre o período que informei.
acho que se fosse filtrado assim daria cero: quando a data de pagamento da ultima parcela quitada for na mesma data do filtro, então sabemos que é a ultima parcela representa que o contrato esta pago por completo.
GOSTEI 0
Thiago Santana
11/02/2015
Marlos, você deve ter uma outra tabela que faz o master detalhe com essa tabela que você mostrou o escopo nos comentários anteriores para fazer o MASTER/DETAIL né?
Daí você faria o seguinte:
TB_MASTER = Tabela onde você tem os dados do seu contrato
TB_DETAIL = Tabela Financeira referente ao seu contrato
Vai ser algo desse tipo, dessa forma você só estará listando os contratos que estão totalmente quitados. Ou seja, não há parcelas em abertas!
Daí você faria o seguinte:
SELECT num_titulo FROM TB_MASTER tm WHERE NOT EXISTS (SELECT num_titulo FROM TB_DETAIL td where td.situacao = 'A' AND td.num_titulo = tm.num_titulo)
TB_MASTER = Tabela onde você tem os dados do seu contrato
TB_DETAIL = Tabela Financeira referente ao seu contrato
Vai ser algo desse tipo, dessa forma você só estará listando os contratos que estão totalmente quitados. Ou seja, não há parcelas em abertas!
GOSTEI 0