CONSULTA QUE MOSTRE O VENCIDO E NO VENCIDO

 Tópico anterior Próximo tópico Novo tópico

CONSULTA QUE MOSTRE O VENCIDO E NO VENCIDO

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#493848 - 15/05/2020 12:32:49

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Bom dia Pessoal,

Tenho uma tabela chamada parcelas, onde possui o campo chamado []DATA[] que a data de vencimento e um campo chamado []STATUS[] que quando []0[] est em aberto e []1[] est pago. (boolean)

tenho varias paraelas para varios clientes... cada cliente possui parcelas vencidas e parcelas que ainda vao vencer...

Preciso jogar num grid o nome desses clientes com a somatoria das vencidas e as que ainda vo vencer (separadas)
tipo assim:

NOME                VENCIDAS       VENCER
Raimundo           100,00              80,00
Jos                     200,00            50,00

obs: ai no o valor da parcelas e sim a somatrias de todas as parcelas Vencidas ou no.... exemplo Raimundo tem 4 parcelas vencidas de R$ 25,00 cada.... por isso quer apareceu R$ 100,00 ai no exemplo

enfim,

Ento fiz o seguinte codigo:


SELECT DISTINCT cliente.CODIGO AS varClienteCod, cliente.Nome,
                          (SELECT     ISNULL(SUM(parcelas.VALOR), 0) AS Expr1
                            FROM          parcelas INNER JOIN
                                                   pedidos ON parcelas.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA < GETDATE())) AS varSomaParcelas
FROM         parcelas AS parcelas_1 INNER JOIN
                      pedidos AS pedidos_1 ON parcelas_1.COD_PEDIDO = pedidos_1.COD_PEDIDO INNER JOIN
                      cliente ON pedidos_1.COD_CLIENTE = cliente.CODIGO
WHERE     (parcelas_1.STATUS = 0)
GROUP BY cliente.CODIGO, cliente.Nome
ORDER BY cliente.Nome


Apareceu as vencidas.... OK

Agora como vou colocar as que faltam vencer na mesma consultar sem ela ficar enorme
e outra, como no parecer o nome dos clientes que no tem nada vencido e nem a vencer.... pq se for null nos 2 casos, ele nao deve aparecer na lista




Resposta escolhida #493851 - 15/05/2020 14:03:58

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
SELECT DISTINCT cliente.CODIGO AS varClienteCod, cliente.Nome,
                          (SELECT     ISNULL(SUM(parcelas.VALOR), 0) AS Expr1
                            FROM          parcelas INNER JOIN
                                                   pedidos ON parcelas.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA < GETDATE())) AS varSomaParcelasVencidas,
                          (SELECT     ISNULL(SUM(parcelas.VALOR), 0) AS Expr1
                            FROM          parcelas INNER JOIN
                                                   pedidos ON parcelas.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA > GETDATE())) AS varSomaParcelasAVencer
                            FROM         parcelas AS parcelas_1 INNER JOIN
                      pedidos AS pedidos_1 ON parcelas_1.COD_PEDIDO = pedidos_1.COD_PEDIDO INNER JOIN
                      cliente ON pedidos_1.COD_CLIENTE = cliente.CODIGO
WHERE     parcelas_1.STATUS = 0 and (varSomaParcelasVencidas > 0 and varSomaParcelasAVencer < 0)
GROUP BY cliente.CODIGO, cliente.Nome
ORDER BY cliente.Nome

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#493854 - 15/05/2020 21:16:56

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Citação:
:
SELECT DISTINCT cliente.CODIGO AS varClienteCod, cliente.Nome,
                          (SELECT     ISNULL(SUM(parcelas.VALOR), 0) AS Expr1
                            FROM          parcelas INNER JOIN
                                                   pedidos ON parcelas.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA < GETDATE())) AS varSomaParcelasVencidas,
                          (SELECT     ISNULL(SUM(parcelas.VALOR), 0) AS Expr1
                            FROM          parcelas INNER JOIN
                                                   pedidos ON parcelas.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA > GETDATE())) AS varSomaParcelasAVencer
                            FROM         parcelas AS parcelas_1 INNER JOIN
                      pedidos AS pedidos_1 ON parcelas_1.COD_PEDIDO = pedidos_1.COD_PEDIDO INNER JOIN
                      cliente ON pedidos_1.COD_CLIENTE = cliente.CODIGO
WHERE     parcelas_1.STATUS = 0 and (varSomaParcelasVencidas > 0 and varSomaParcelasAVencer < 0)
GROUP BY cliente.CODIGO, cliente.Nome
ORDER BY cliente.Nome


Ficou top...
S tiver um problema nessa parte []and (varSomaParcelasVencidas > 0 and varSomaParcelasAVencer < 0)[] dar o erro []Coluna X e Y invalida[]

Removi essa parte e rodou normal, porem foi deixado de lado essas wheres q so importantes para nao exibir clientes com nenhuma parcelas vencida ou vencer




#493856 - 15/05/2020 22:44:56

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Ento vai ter que colocar essa clusula dentro das subqueries, tipo assim:
WHERE      (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA < GETDATE()) AND (parcelas.VALOR>0)) AS varSomaParcelasVencidas,

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#493857 - 15/05/2020 23:03:53

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Citação:
:
Ento vai ter que colocar essa clusula dentro das subqueries, tipo assim:
WHERE (pedidos.COD_CLIENTE = cliente.CODIGO) AND (parcelas.STATUS = 0) AND (parcelas.DATA < GETDATE()) AND (parcelas.VALOR>0)) AS varSomaParcelasVencidas,


com essa parte  ...ISNULL(SUM(parcelas.VALOR), 0) AS Expr1... tentei  ...AND (parcelas.VALOR > 0)...
com essa parte  ...SUM(parcelas.VALOR) AS Expr1... tentei  ...AND (parcelas.VALOR IS NOT NULL)...

e o danado dos registros que contem o campo vencidas  zeradas ou nulas... continua no grid

Eu queria eu se o cliente no tivesse nenhuma vencida, no aparecesse no grid, mesmo ele tendo algumas pagar.....




#493998 - 02/06/2020 14:35:44

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Voltei pessoal

Alguem pode me ajudar com isso?



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por AMELINHACODE em 09/03/2021 10:42:46