Ir para conteúdo
neto_celino

Descobrir Pedidos não pagos

Recommended Posts

Bom dia caros amigos.

 

 

Tenho 2 tabelas e gostaria de saber o que o "cliente não pagou".


Tabela 1 = tbl_pedido

 

ID | idpedido | idproduto |  qtd   | valorunitario | valor total

1  |        2        |       2       |  200  |           1          |      200

2  |        2        |       1       |   50   |           1          |       50 

3  |        1         |        10       |  200  |           1           |      200

4  |        2         |        1       |   50   |             1             |       50 

4  |        3         |        1       |   50   |             1             |       50 

 

Manualmente por SELECT sum, consigo retornar o seguinte resultado:

Total: Pedido 1 = R$ 200,00
Total: Pedido 2 = R$ 300,00
 
Tabela 2 = pagamentos
 
 

ID | idpedido | valorpago |  

1  |        2        |        50       |  

2  |        2        |       100      | 

3  |        3        |       50       | 

 

Considero então, que o PEDIDO 1 não tem pagamento registrado ainda e que o PEDIDO 2 falta R$ 150,00 a ser pago ainda e o PEDIDO 3 já está pago.

 

De que forma, consigo em 1 SELECT só obter o valor que falta de pagamento nos pedidos e ocultar o que ja foi pago  ?

 

 

 

 Grato desde já.

Att

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria mais facil incluir algum flag na tabela?

 

por exemplo

 

ID | idpedido | idproduto |  qtd   | valorunitario | valor total | pago

1  |        2        |       2          |  200  |           1           |      200       |   0

2  |        2        |       1          |   50   |           1           |       50         |    1  

3  |        1         |        10         |  200  |            1            |      200         |     0

4  |        2         |        1           |   50   |             1            |       50          |     0

4  |        3         |        1           |   50   |             1            |       50          |     1

 

ai na sua query você faz um WHERE condicionando a coluna PAGO

Desta forma você até poderá criar indices de consulta que melhorará a sua performance para pesquisas com grandes volumes

 

WHERE pago=1 (1 para pago e 0 para não pago)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Guilherme Luiz disse:

Não seria mais facil incluir algum flag na tabela?

 

por exemplo

 

ID | idpedido | idproduto |  qtd   | valorunitario | valor total | pago

1  |        2        |       2          |  200  |           1           |      200       |   0

2  |        2        |       1          |   50   |           1           |       50         |    1  

3  |        1         |        10         |  200  |            1            |      200         |     0

4  |        2         |        1           |   50   |             1            |       50          |     0

4  |        3         |        1           |   50   |             1            |       50          |     1

 

ai na sua query você faz um WHERE condicionando a coluna PAGO

Desta forma você até poderá criar indices de consulta que melhorará a sua performance para pesquisas com grandes volumes

 

WHERE pago=1 (1 para pago e 0 para não pago)

 

Entendi sua ideia, mas, em 1 mesmo pedido pode-se ter mais de 1 pagamento em data, hora, e metodo diferente (cartão, dinheiro, deposito)

Acho que não ficaria facil a interpretação disso depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria uma coluna de SALDO na tabela de PEDIDO , uma ou mais triggers na tabela de pagamento manteria esta coluna atualizada , uma breve pesquisa na web mostra como fazer isto.

 

A vantagem a coluna responde perguntas como :

 

Quem tem Saldo (total,parcial e em aberto) em uma só coluna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.