Funcionou no gerenciador do mysql, depois vou implementar no delphi. Uma última 
ajuda.
A tabela de horas tem o cadastro de horas de minuto em minuto por isso a 
visualização das horas num combo fica muito ruim. Você sabe uma instrução sql 
para que ela apareça de 10 em 10, 20 em 20 ou 30 em 30 minutos, claro que estas 
opções podem ser divididas num radiogoupbox, por exemplo, e de acordo com a 
escolha será a visualizão.
Por exemplo: Das 07:00 até 07:59 eu tenho 60 itens num combo porque são 60 
minutos
07:00
07:01
 até 07:59

se eu tiver a possibilidade de escolher por visualizar de 20 em 20 minutos eu 
terei somente 3 campos no combo
07:00
07:20
07:40

Você pode me dar mais essa ajuda?

Depois de todo este sufoco deixo a minha palavra que vou disponibilizar este 
código fonte para o grupo. 

Deus abençoe


Alex Silva


--- Em delphi-br@yahoogrupos.com.br, Edelson Regis de Lima <edre...@...> 
escreveu
>
> Voce tem um campo data na TB_HORA? Para saber a hora de qual dia voce quer
> pegar...
> Ou o proprio campo hora_consulta é um DATETIME que grava a data e hora?
> Bom, vou supor que o campo hora_consulta é um DateTime...
> Acho que voce pode fazer assim: (não testei, pois não tenho as tabelas na
> minha base)
> 
> SELECT
>    TH.hora_consulta,
>    TA.cod_agenda,
>    TP.nome,
> FROM TB_HORA AS TH
> LEFT JOIN TB_AGENDA AS TA ON TA.cod_hora = TH.cod_hora
> LEFT JOIN TB_PACIENTE AS TP ON TP.cod_paciente = TA.cod_paciente
> WHERE TH.hora_consulta BETWEEN '2009.07.01 07:00:00' AND '2009.07.01
> 22:00:00'
> 
> Como voce já tem todas as horas cadastradas na TB_HORA, esse select lhe
> retornará todas as horas desse intervalo, mesmo se não houver nenhum
> paciente registrado para aquele horário, porque voce estará usando o LEFT
> JOIN.
> Se voce usar o INNER JOIN, só trará as horas com pacientes cadastrados, do
> jeito que o seu sistema já está fazendo.
> 
> Testa aí, e qq coisa avisa.
> 
> Edelson.
> 
> 
> 
> 
> 2009/6/20 asandro1501 <asandro1...@...>
> 
> >
> >
> > Basicamente são 3 tabelas relacionadas porque criei uma tabela de horas mas
> > não sei se é preciso utilizá-la mas por enquanto estou utilizando.
> >
> > TB_HORA
> > cod_hora
> > hora_consulta
> > Na TB_HORA estão inseridos todos os horários das 07:00 até 22:00
> >
> > TB_PACIENTE
> > cod_paciente
> > nome
> >
> > TB_AGENDA
> > cod_agenda - autoincremento
> > cod_paciente - faz relacionamento com TB_PACIENTE
> > cod_hora - faz relacionamento com TB_HORA
> > hora
> >
> > O campo "hora" é um "coringa" caso elimine o "cod_hora" daí só trabalharia
> > com as tabelas TB_PACIENTE e TB_AGENDA
> >
> > Digamos que para o dia 01/07/09 eu tenha somente o paciente 1 marcado para
> > as 09:00 da manhã e que o cod_agenda seja "50". Na consulta que tenho ela só
> > retorna uma linha mas preciso que retorne como abaixo:
> >
> > HORACONSULTA COD_AGENDA COD_PACIENTE
> > 07:00 em branco em branco
> > 07:01 em branco em branco
> > " " "
> > 09:00 50 1
> > 09:01 em branco em branco
> > 09:02 em branco em branco
> > " " "
> > " " "
> > 22:00 em branco em branco
> >
> > Não sei se você conseguiu entender mas preciso que apareçam todos os
> > horarios mesmo que não hajam consultas marcadas. Se você quiser posso mandar
> > o código-fonte
> >
> > Abraço
> >
> > Alex Silva
> >
> > --- Em delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>,
> > Edelson Regis de Lima <edregis@> escreveu
> > >
> > > Acho que dá para fazer isso via SQL sim...
> > > Passa aí um exemplo de como voce quer que fique esse relatorio, e a
> > > estrutura completa das tabelas que voce quer usar (ou pelo menos os
> > campos
> > > que voce quer usar de cada tabela).
> > > Se precisar criar um ClientDataSet temporário em run time com o resultado
> > > também não é difícil não... passa as informações aí e vamos ver se
> > > conseguimos te ajudar...
> > >
> > > Edelson.
> > >
> > >
> > > 2009/6/19 asandro1501 <asandro1501@>
> > >
> > > >
> > > >
> > > > Olá Pessoal
> > > >
> > > > Primeiramente quero agradecer a todos pelas respostas que recebi até
> > hoje.
> > > > Eu comecei uma agenda médica em firebird mas modifiquei para
> > mysql+zeos,
> > > > estou satisfeito com os resultados até agora, porem ainda tenho que
> > montar
> > > > uma visualização numa grid que mostre todos os agendamentos para uma
> > > > determinada data + os horários vagos. Via sql não consegui fazer essa
> > > > vizualização. Aqui mesmo no grupo me disseram para estudar orientação a
> > > > objetos mas não tenho tempo habil pra isso. Outra coisa que me disseram
> > > > também seria a utilização de um clientdataset mas também nunca utilizei
> > e
> > > > agora não sei se é possível utilizar este componente juntamente com o
> > zeos.
> > > > Criei uma tabela com horarios das 07:00 até 22:00 horas e relacionei
> > com a
> > > > tabela agenda
> > > > Na tabela de agenda tenho os seguintes campos:
> > > > cod_agenda - chave primaria
> > > > cod_paciente - chave estrangeira com tabela de pacientes
> > > > cod_hora - chave estrangeira com tabela de horas
> > > > hora_consulta
> > > >
> > > > O campo hora consulta é para o caso de não utilizar a tabela de horas,
> > > > deixei como uma forma de escape até descobrir ao certo o que fazer. Por
> > > > favor se alguem puder me ajudar mais uma vez eu agradeço, posso até
> > enviar o
> > > > código fonte se for o caso.
> > > >
> > > > Deus abençoe a todos
> > > >
> > > > Alex Silva
> > > > msn: lekinhors@ <lekinhors%40hotmail.com>
> > > >
> > > >
> > > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> >
> > 
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a