CONSULTA QUE MOSTRE O VENCIDO E NÃO VENCIDO

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

CONSULTA QUE MOSTRE O VENCIDO E NÃO 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 vão vencer (separadas)
tipo assim:

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

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

enfim,

Então 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 não parecer o nome dos clientes que não tem nada vencido e nem a vencer.... pq se for null nos 2 casos, ele nao deve aparecer na lista




#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 Oráculo!
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 são 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
Então vai ter que colocar essa cláusula 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 Oráculo!
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:
:
Então vai ter que colocar essa cláusula 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 não tivesse nenhuma vencida, não aparecesse no grid, mesmo ele tendo algumas à pagar.....




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


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário