Jump to content


Photo

Problemas Numa Consulta Sql


  • Faça o login para participar
11 replies to this topic

#1 mysteriouspy

mysteriouspy

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 05/02/2007, 14:32

Boa tarde pessoal,
Tenho um problema...

Tenho uma tablea de atendimento, cujo existe um campo chamado RETORNO e DATA....

DATA = eh gravado qnd um novo atendimento for feito
RETORNO = uma data q o cara escolhe pra pessoa retornar...

O que eu preciso?
Baseado nesses dois campos eu preciso fazer com q...supomos q um retorno foi agendado pra ontem, mas nao retornaram, eu preciso q ele me mostre todos os cadastros q nao foram retornado (uma vez q foram agendado o retorno deles)...

E como sei se ele retornou ou nao?!!

Se houver algum reistro dps do retorno agendado, jah eh considerado um retorno..ou seja, se foi cadastrado um novo atendimento depois do q jah tinha sido programado o retorno (feito pela pessoa) ele acusaria q ja foi feito o atendimento..por exemplo...se DATA for maior q RETORNO, ja acusaria q foi feito..mas aih eu preciso de todos q nao foram atendidos...

mas eu fiz uns sql do tipo WHERE DATA < RETORNO..soh q ele trazem osoutros atendimentos antigos..e eu precisaria saber soh se nao há atendimento após o ultimo registro...

Obrigado

#2 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 05/02/2007, 14:57

TÓPICO MOVIDO
De PHP para Programação Desktop / Banco de Dados

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog

#3 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 05/02/2007, 15:37

Qual banco?
"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#4 mysteriouspy

mysteriouspy

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 05/02/2007, 20:39

Mysql

Edição feita por: mysteriouspy, 05/02/2007, 21:11.


#5 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 06/02/2007, 07:39

SELECT * FROM TABELA WHERE DATA = CURRENT_DATE - 1 AND RETORNO IS NULL

Edição feita por: Noturno, 06/02/2007, 07:39.

"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#6 mysteriouspy

mysteriouspy

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 06/02/2007, 08:09

Acho q nao deu certo =//
Por duas situaçoes:
1º O current_data - 1 ele pega soh a data anterior ao dia de hj (pelo q percebi) e tipo...essa verificaçao eu keria fazer se tipo..se nao houvesse atendimento após qualquer data q for..

Ou seja, eu posso ter um retorno q foi agendado pra semana passada e nao foi atendido e nesse caso eu precisaria mostrar (nao importando a data), a DATA seria apenas uma referencia do tipo, se existir uma DATA após o ultimo RETORNO agendado (nesse caso seria um novo atendimento) significa q o atendimento foi retornado, senao, nao...

O outro problema eh q o RETORNO IS NULL ele nao reconhece eu acho, pq o valor default dele (q o banco tah gravando) eh 0000-00-00, ou isso ja eh considerado valor NULL?!!

Edição feita por: mysteriouspy, 06/02/2007, 08:16.


#7 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 06/02/2007, 09:56

Então vc não precisa saber especificamente o que foi cadastrado ONTEM e não teve retorno hoje, e sim saber o que não teve retorno.
Mais simples ainda:

SELECT * FROM TABELA WHERE RETORNO = '0000-00-00'

Eu não sabia que o seu campo tinha valor default, por isso coloquei null.
"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#8 mysteriouspy

mysteriouspy

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 06/02/2007, 10:35

Entao...soh q acontece assim...
Supondo q esteja marcado um retorno mas a pessoa nao retornou..um retorno = a 0000-00-00 nao funcionaria pq aih ele me retorna todos os iguais a 0000-00-00 ou seja, os q nao possuem um atendimento sem retorno e nao os q foram marcados o retorno mas q nao foi retornado

abraçoss!!!

#9 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 06/02/2007, 10:43

Ai já entra outra questão, é bom vc gravar histórico de retornos, mas msm assim dá pra fazer sem histórico:

SELECT * FROM TABELA WHERE RETORNO = '0000-00-00' or DATA > RETORNO

"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#10 mysteriouspy

mysteriouspy

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 06/02/2007, 12:18

Eh..acho q nao vai ter jeito mesmo =(

de qualqur forma brigadao pela tentativa cara

#11 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 07/02/2007, 08:35

Claro que tem jeito, qual foi o erro agora?
"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#12 mysteriouspy

mysteriouspy

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 10/02/2007, 08:33

SELECT * FROM TABELA WHERE RETORNO = '0000-00-00' or DATA > RETORNO

Pq nesse select, ele pode por exemplo, no atendimento vai mostrar RETORNO = 0000-00-00 ou DATA > RETORNO....mas essa data > q retorno pode ser de qlqr retorno e nao do penultimo para o ultimo..
e no caso de retorno = 0000-00-00 ele vai me retornar qlqr retorno q nao foi agendado, ou seja, eu preciso do retorno q foi agendado mas q nao foi atendido...




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq