k9studio 0 Denunciar post Postado Agosto 6, 2010 Bom dia pessoal! Estou meio errolado em fazer uma consulta e imprimir na tela. Seguinte: tenho uma tabela de vencimentos minha consulta seria pegar todos os vencimentos em atraso menos o do mes corrente. alguem pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
samuelesoares 1 Denunciar post Postado Agosto 6, 2010 Bom dia, fiz alguns teste aqui e encontrei a sequinte instrução SQL, é só você adaptar a sua instrução: SELECT CURRENT_DATE - INTERVAL (DAYOFMONTH(CURRENT_DATE) + 1) DAY AS ULTIMA_DATA Esta instrução sempre vai retornar o último dia mês anterior a data de hoje, pegando o exemplo da data de hoje 06/08/2010, retorna 30/07/2010. Espero ter ajudado! Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Agosto 6, 2010 tenta assim: select * from vencimento where dia_do_venc < now(); vencimento é o nome da sua tabela dia_do_venc é a data que você precisa comparar now() é uma função que pega da data atual Compartilhar este post Link para o post Compartilhar em outros sites
k9studio 0 Denunciar post Postado Agosto 6, 2010 Olá amigo, Veja como instrução que fiz mais não fucionou, pega todos vencimentos do id_cliente e deveria pegar do mes anterior ao ataul SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente = '102' and diavencimento = '2010-08-10' < now() and status_vence='off' Onde errei? Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Agosto 6, 2010 diavencimento = '2010-08-10' < now() seu erro acredito que está ai A unica coisa que me vem na cabeça é um subselect Primeiro você filtra pelo '2010-08-10' e depois pelo < now() Compartilhar este post Link para o post Compartilhar em outros sites
samuelesoares 1 Denunciar post Postado Agosto 6, 2010 Faz um teste no seu banco de dados aí: SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente = '102' and diavencimento <= (CURRENT_DATE - INTERVAL (DAYOFMONTH(CURRENT_DATE) + 1) DAY) and status_vence='off'; Vai listar todos os vencimentos até a última data do último mês, este mês corrente não vai sair. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
k9studio 0 Denunciar post Postado Agosto 6, 2010 Faz um teste no seu banco de dados aí: SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente = '102' and diavencimento <= (CURRENT_DATE - INTERVAL (DAYOFMONTH(CURRENT_DATE) + 1) DAY) and status_vence='off'; Vai listar todos os vencimentos até a última data do último mês, este mês corrente não vai sair. Até mais. Olá Amigo, Tá funcionando pegando do mes corrente como mencionei, me desculpe, na realidade eu queria que pegasse do ultimo vencimento em vez de listar pelo mes corrente. tem como fazer? Desculpe, se puder dar mais essa força Compartilhar este post Link para o post Compartilhar em outros sites
samuelesoares 1 Denunciar post Postado Agosto 6, 2010 Desculpe, acho que não entendi, você quer listar todos os débitos vencidos até ontem, por exemplo. Compartilhar este post Link para o post Compartilhar em outros sites
k9studio 0 Denunciar post Postado Agosto 6, 2010 Desculpe, acho que não entendi, você quer listar todos os débitos vencidos até ontem, por exemplo. Olá Amigo, Listar todos vencimentos anterior ao ultimo vencimento exemp: se vecimento 17/07/2010 listar todos os vencimentos anterios do cliente Compartilhar este post Link para o post Compartilhar em outros sites
samuelesoares 1 Denunciar post Postado Agosto 6, 2010 Acho que agora vai! Fiz o seguinte teste: Tabela: vencimentos id id_cliente valor_venc diavencimento status_vence 1 102 100.00 2010-06-01 Off 2 102 100.00 2010-07-01 Off 3 102 100.00 2010-08-01 Off 4 102 100.00 2010-09-01 Off 5 111 100.00 2010-06-01 Off De acordo com a sua explicação, você quer listar o total dos débitos anteriores a última data vencida, no caso 01/08/2010 e não do último débito que é 01/09/2010. Para isto fiz a seguinte instrução SQL: SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente =102 AND status_vence='off' AND diavencimento < ( SELECT diavencimento FROM vencimentos WHERE id_cliente=102 AND status_vence='off' AND diavencimento < CURRENT_DATE ORDER BY diavencimento DESC LIMIT 0,1) Resultado: id_cliente total 102 200.00 É a soma das datas 01/06/2010 e 01/07/2010, ambas anteriores ao último vencimento 01/08/2010. Espero que seja isto. Compartilhar este post Link para o post Compartilhar em outros sites
k9studio 0 Denunciar post Postado Agosto 6, 2010 Olá Amigo, Desculpe acho que não lhe expliquei deireito: Digamos que o cliente tem 5 venciementos: Vencimento_1 2010-03-17 valor 100,00 Vencimento_2 2010-04-17 valor 100,00 Vencimento_3 2010-05-17 valor 100,00 Vencimento_4 2010-06-17 valor 100,00 Vencimento_5 2010-07-17 valor 100,00 (mes 8/2010 ainda vai ser lancado) na instrucao eu chamo id_cliente =102 and vencimento_3 entaum somar vencimento_1 e venciemnto_2 e se chamar na instrucao id_cliente =102 and vencimento_5 somar vencimento_1, venciemnto_2,venciemnto_3, venciemnto_4 seria isso. Compartilhar este post Link para o post Compartilhar em outros sites
samuelesoares 1 Denunciar post Postado Agosto 6, 2010 Olá Amigo, Desculpe acho que não lhe expliquei deireito: Digamos que o cliente tem 5 venciementos: Vencimento_1 2010-03-17 valor 100,00 Vencimento_2 2010-04-17 valor 100,00 Vencimento_3 2010-05-17 valor 100,00 Vencimento_4 2010-06-17 valor 100,00 Vencimento_5 2010-07-17 valor 100,00 (mes 8/2010 ainda vai ser lancado) na instrucao eu chamo id_cliente =102 and vencimento_3 entaum somar vencimento_1 e venciemnto_2 SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente =102 AND status_vence='off' AND diavencimento < '2010-05-17' e se chamar na instrucao id_cliente =102 and vencimento_5 somar vencimento_1, venciemnto_2,venciemnto_3, venciemnto_4 SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente =102 AND status_vence='off' AND diavencimento < '2010-07-17' As instruções são baseadas na tabela de exemplo que você informou. Compartilhar este post Link para o post Compartilhar em outros sites
k9studio 0 Denunciar post Postado Agosto 12, 2010 Ola Amigo, Funcionou 100%, muito obrigado!!! Ola Amigo, Funcionou 100%, muito obrigado!!! No server local funciona quando mando para web dar esse erro pode ajudar? Query: SELECT id_cliente, SUM(valor_venc) as total FROM vencimentos WHERE id_cliente =102 AND status_vence='off' AND diavencimento < '2010-07-17' Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause Resolvido, obrigado Compartilhar este post Link para o post Compartilhar em outros sites