RES: [delphi-br] Ajuca com SQL
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-br@yahoogrupos.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM
RES: [delphi-br] Ajuca com SQL
Você tentou com a SQL que te passei? select num_pedido from pedido where vl_pedido (select coalesce(sum( vl_pagamento) , 0) from pagamento where cd_pedido = pedido.cd_pedido) Luciano Calenzani Simões 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]
RES: [delphi-br] Ajuca com SQL
Luciano, a sua funcionou: select CDPEDIDO, VALOR from BDpedidos where VALOR (select coalesce(sum(ValorPgto) , 0) from BDpagamentos where cdpedido = BDpedidos.cdpedido) Me retornou os numeros dos pedidos corretos, só que eu preciso que me retorne tbm o montante já pago. Quando eu coloco o SUM no primeiro select, volto a situação anterior. O retorno deve ser tipo assim: PEDIDO VALORTOTAL VALORPAGO 1500 200 3600 5400 50 6290 150 7450 8600 99 320 100 Eu consigo mais estou fazendo duas querys... em uma só tá dificil. -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 08:05 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] Ajuca com SQL Você tentou com a SQL que te passei? select num_pedido from pedido where vl_pedido (select coalesce(sum( vl_pagamento) , 0) from pagamento where cd_pedido = pedido.cd_pedido) Luciano Calenzani Simões 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
RES: [delphi-br] Ajuca com SQL
Vou fazer de uma forma que o Sybase suporte, não sei no seu SGDB. 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 8:34:05 Assunto: RES: [delphi-br] Ajuca com SQL Luciano, a sua funcionou: select CDPEDIDO, VALOR from BDpedidos where VALOR (select coalesce(sum( ValorPgto) , 0) from BDpagamentos where cdpedido = BDpedidos.cdpedido) Me retornou os numeros dos pedidos corretos, só que eu preciso que me retorne tbm o montante já pago. Quando eu coloco o SUM no primeiro select, volto a situação anterior. O retorno deve ser tipo assim: PEDIDO VALORTOTAL VALORPAGO 1500 200 3600 5400 50 6290 150 7450 8600 99 320 100 Eu consigo mais estou fazendo duas querys... em uma só tá dificil. 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]
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-br@yahoogrupos.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
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-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br]em nome de José Roberto Marque Enviada em: quarta-feira, 1 de abril de 2009 08:37 Para: delphi-br@yahoogrupos.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-br@yahoogrupos.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM
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]
RES: [delphi-br] Ajuca com SQL
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
RES: [delphi-br] Ajuca com SQL
Isso que esta me deixando maluco, nesta situação: 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, VALOR_PAGO o resultado são tres colunas, CDPEDIDO, VALOR e VALOR_PAGO Mais se eu acrescento HAVING: 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, VALOR_PAGO having VALOR VALOR_PAGO me retorna o seguinte erro: Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. VALORGERAL. At line 5, column 17. é coisa de doido -Mensagem original- De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br]em nome de Vinicius da Silva Pinto Enviada em: quarta-feira, 1 de abril de 2009 09:43 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] Ajuca com SQL 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
RES: [delphi-br] Ajuca com SQL
Faz assim 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, VALOR_PAGO having VALOR (select coalesce(sum(b.ValorPgto) , 0) from BDpagamentos b where b.cdpedido = a.cdpedido) Enjoy De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Vinicius da Silva Pinto Enviada em: quarta-feira, 1 de abril de 2009 09:54 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] Ajuca com SQL Isso que esta me deixando maluco, nesta situação: 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, VALOR_PAGO o resultado são tres colunas, CDPEDIDO, VALOR e VALOR_PAGO Mais se eu acrescento HAVING: 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, VALOR_PAGO having VALOR VALOR_PAGO me retorna o seguinte erro: Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. VALORGERAL. At line 5, column 17. é coisa de doido -Mensagem original- De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br ]Em nome de Vinicius da Silva Pinto Enviada em: quarta-feira, 1 de abril de 2009 09:43 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: RES: [delphi-br] Ajuca com SQL Sim, ele reclama logo de cara do campo VALOR_PAGO, mesmo colocando HAVING -Mensagem original- De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.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 mailto:delphi-br%40yahoogrupos.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 mailto:vinicius%40cnen.gov.br Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.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
RES: [delphi-br] Ajuca com SQL
Valeu mesmo Juliano e a todos que colaboraram comigo. funcionou que é uma blz Agradeço de coração, pois não tenho muita experiencia em SQL, não por preguiça ou má vontade, estava tentando varias combinações, talves daqui a uns meses eu conseguiria chegar até esse ponto. Um abraço a todos e com certeza voltarei com mais algumas dúvidas. Vinicius S Pinto Faz assim 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, VALOR_PAGO having VALOR (select coalesce(sum(b.ValorPgto) , 0) from BDpagamentos b where b.cdpedido = a.cdpedido) Enjoy De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Vinicius da Silva Pinto Enviada em: quarta-feira, 1 de abril de 2009 09:54 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] Ajuca com SQL Isso que esta me deixando maluco, nesta situação: 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, VALOR_PAGO o resultado são tres colunas, CDPEDIDO, VALOR e VALOR_PAGO Mais se eu acrescento HAVING: 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, VALOR_PAGO having VALOR VALOR_PAGO me retorna o seguinte erro: Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. VALORGERAL. At line 5, column 17. é coisa de doido -Mensagem original- De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br ]Em nome de Vinicius da Silva Pinto Enviada em: quarta-feira, 1 de abril de 2009 09:43 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: RES: [delphi-br] Ajuca com SQL Sim, ele reclama logo de cara do campo VALOR_PAGO, mesmo colocando HAVING -Mensagem original- De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.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 mailto:delphi-br%40yahoogrupos.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 mailto:vinicius%40cnen.gov.br Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.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
[delphi-br] Ajuca com SQL
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
Res: [delphi-br] Ajuca com SQL
Uma forma de fazer: select num_pedido from pedido where vl_pedido (select coalesce(sum(vl_pagamento), 0) from pagamento where cd_pedido = pedido.cd_pedido) Luciano Calenzani Simões De: Vinicius da Silva Pinto vinic...@cnen.gov.br Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 27 de Março de 2009 15:33:42 Assunto: [delphi-br] Ajuca com SQL 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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Ajuca com SQL
É só ler a tabela de pagamentos com LEFT OUTER JOIN ... Pois pelo que entendi ele está fazendo INNER JOIN, ou seja : considera apenas aqueles que tem registros em ambas as tabelas. --- 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-br@yahoogrupos.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Ajuca com SQL
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-br@yahoogrupos.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]