Sim, ele reclama logo de cara do campo VALOR_PAGO, mesmo colocando HAVING

-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br]em
nome de Luciano Calenzani Simões
Enviada em: quarta-feira, 1 de abril de 2009 09:40
Para: delphi-br@yahoogrupos.com.br
Assunto: RES: [delphi-br] Ajuca com SQL


Testou desta forma?

select CDPEDIDO, VALOR, (select coalesce(sum( ValorPgto) , 0)
from BDpagamentos where cdpedido = BDpedidos.cdpedido) VALOR_PAGO
from BDpedidos
where VALOR <> VALOR_PAGO

 Luciano Calenzani Simões






________________________________
De: Vinicius da Silva Pinto <vinic...@cnen.gov.br>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quarta-feira, 1 de Abril de 2009 9:26:09
Assunto: RES: RES: [delphi-br] Ajuca com SQL


Utilizando HEAVING, ele reclama do campo VALOR_PAGO

select a.CDPEDIDO, a.VALOR, (select coalesce(sum( b.ValorPgto) , 0)
from BDpagamentos b where b.cdpedido = a.cdpedido)  VALOR_PAGO
from BDpedidos a
group by a.CDpedido, a.Valor
HAVING A.VALOR <> VALOR_PAGO

Retirando Group by e heavin, funciona que é uma beleza, mais traz tbm todos
os registros pagos integralmente.

Estou fazendo diversos testes utilizando o IBexpert em uma base INTERBASE
6.5

-----Mensagem original---- -
De: delphi...@yahoogrup os.com.br [mailto:delphi...@yahoogrup os.com.br]Em
nome de José Roberto Marque
Enviada em: quarta-feira, 1 de abril de 2009 08:37
Para: delphi...@yahoogrup os.com.br
Assunto: Re: RES: [delphi-br] Ajuca com SQL

Complicado, hein, Vinicius.

  Será que não é o HAVING ? Porque o LEFT OUTER JOIN vai retornar nulo se o
registro não existir.  A dúvida que fica é como o HAVING trataria isso ...

--- Em qua, 1/4/09, Vinicius da Silva Pinto <vinic...@cnen. gov.br>
escreveu:

De: Vinicius da Silva Pinto <vinic...@cnen. gov.br>
Assunto: RES: [delphi-br] Ajuca com SQL
Para: delphi...@yahoogrup os.com.br
Data: Quarta-feira, 1 de Abril de 2009, 7:56

Grande Jose, olha, o resultado foi o mesmo, todas as duas opções
(a minha e

a sua com left outer join) deram o mesmo resultado.

estou fazendo teste com coalesce...

Vinicius

Tenta assim :

 SELECT A.CDPEDIDO, A.DATAEVENTO, A.VALOR, SUM( G.VALORPAGTO )

 FROM BDPEDIDOS A LEFT OUTER JOIN BDPAGAMENTOS G ON A.CDPEDIDO = G.CDPEDIDO

 WHERE A.DATAEVENTO <= '01/04/2009'

GROUP BY CDPEDIDO, DATAEVENTO, VALOR

HAVING SUM(G.ValorPgto) < A.valor

Entendeu ?

Vê se funciona.

--- Em sex, 27/3/09, Vinicius da Silva Pinto <vinic...@cnen. gov.br>

escreveu:

De: Vinicius da Silva Pinto <vinic...@cnen. gov.br>

Assunto: [delphi-br] Ajuca com SQL

Para: delphi...@yahoogrup os.com.br

Data: Sexta-feira, 27 de Março de 2009, 15:33

Ve se alguem pode me ajudar, já quebrei a cabeça e não obtive o

resultado

satisfatório.

São duas tabelas, bem simples uma com os dados de um pedido com codigo,

nome...e ValorTotal.

Na outra tabela, a de pagamentos, só tem registro quando o cliente paga,

pode ser a vista ou parcelado.

As duas tabelas são unidas pelo campo CDpedido

O que eu quero é o seguinte... um relação de todos os pedidos que ainda não

pagaram o valor total.

Fiz a seguinte query:

SELECT A.CDPEDIDO, A.dataevento, A.valor AS VALORTOTAL, SUM(G.ValorPgto) AS

TOTALPAGO

FROM BDpedidos A, BDpagamentos G

WHERE G.CDpedido = A.CDpedido AND A.DATAEVENTO <= '01/04/2009'

GROUP BY CDPEDIDO, DATAEVENTO, VALOR

HAVING SUM(G.ValorPgto) < A.valor

Funciona, só que só aparecem os pedidos que já tiveram algum pagamento, os

registros que estão na

tabela principal que ainda não tiveram nenhum pagamento, não sai...

Pergunta.... . como faço para aparecer tbm os registros que não tiveram

pagamento.

Agradeço qualquer ajuda ou dica.

Vinicius

Veja quais são os assuntos do momento no Yahoo! +Buscados

http://br.maisbusca dos.yahoo. com

[As partes desta mensagem que não continham texto foram removidas]

------------ --------- --------- ------

--

<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca dos.yahoo. com

[As partes desta mensagem que não continham texto foram removidas]

------------ --------- --------- ------

--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>





      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>





Responder a