Oracle - Exibir os atendimentos com tempo de retorno igual ou menor do que 40 dias
Boa Tarde Amigos e mestres,
Estou em fase de aprendizagem em banco de dados, onde estou tentando criar um select e estou com dificuldade. criei uma base de teste de atendimentos, onde o nome é 'Atendimento' e neste existe uma coluna chamada 'dt_atendimento'. Preciso criar uma consulta, que me retorno os atendimentos que tiveram retorno com data menor ou igual a 40 dias
Nome Tabela: Atendimento
Chave primaria: cd_atendimento
chave estrangeira: cd_paciente
campo Data: dt_atendimento
Relacionamento 1...N, ou seja, um paciente pode ter varias atendimentos
Estou em fase de aprendizagem em banco de dados, onde estou tentando criar um select e estou com dificuldade. criei uma base de teste de atendimentos, onde o nome é 'Atendimento' e neste existe uma coluna chamada 'dt_atendimento'. Preciso criar uma consulta, que me retorno os atendimentos que tiveram retorno com data menor ou igual a 40 dias
Nome Tabela: Atendimento
Chave primaria: cd_atendimento
chave estrangeira: cd_paciente
campo Data: dt_atendimento
Relacionamento 1...N, ou seja, um paciente pode ter varias atendimentos
Felipe Silva
Curtidas 0
Respostas
Luiz Vichiatto
18/12/2017
Faça o select normal, como se a consulta para todas as consultas, depois coloque a clausula where comparando a dt_atendimento, com a data de hoje diminuindo 40 dias, ficando similar a isto (confira o código)
select ate.cd_atendimento, ate.dt_atendimento, pac.NOME, pac.dt_nascimento from ATENDIMENTO ate inner join PACIENTE pac on pac.cd_paciente = ate.cd_paciente where ate.dt_atendimento >= (dt_atendimento - 40)
GOSTEI 0
Felipe Silva
18/12/2017
Boa Tarde Luiz,
Estava tentando chegar a seu raciocínio, porem acredito que não satisfaça ao que quero, pois pelo que intendi seu select irá selecionar todos os atendimentos que foram realizados de 40 dias atrás até a data de hoje, correto? Na verdade o que quero é, listar todos os atendimentos que o intervalo entre um e outro foram menor do que 40 dias, independente da data, ou seja, poderá trazer um atendimento do ano passado que teve menos de 40 dias de intervalos entre eles, do mesmo paciente. Estou apanhando feio aqui.
Estava tentando chegar a seu raciocínio, porem acredito que não satisfaça ao que quero, pois pelo que intendi seu select irá selecionar todos os atendimentos que foram realizados de 40 dias atrás até a data de hoje, correto? Na verdade o que quero é, listar todos os atendimentos que o intervalo entre um e outro foram menor do que 40 dias, independente da data, ou seja, poderá trazer um atendimento do ano passado que teve menos de 40 dias de intervalos entre eles, do mesmo paciente. Estou apanhando feio aqui.
GOSTEI 0
Luiz Vichiatto
18/12/2017
Então o que você quer é a diferença entre o agendamento e o atendimento da consulta, neste caso você terá que ter a diferença entre a data do agendamento e a data do atendimento maior que 40 dias.
Nas sua questão inicial você não mencionou a data da consulta, apenas a data do atendimento, neste caso fica assim
Para o exemplo DT_AGENDAMENTO foi indicado pois não sei o campo que corresponde.
Se preferir procure mais detalhes em
http://aprendaplsql.com
http://glufke.net
https://www.devmedia.com.br/guia/oracle/34365
Nas sua questão inicial você não mencionou a data da consulta, apenas a data do atendimento, neste caso fica assim
Para o exemplo DT_AGENDAMENTO foi indicado pois não sei o campo que corresponde.
select ate.cd_atendimento, ate.dt_atendimento, pac.NOME, pac.dt_nascimento from ATENDIMENTO ate inner join PACIENTE pac on pac.cd_paciente = ate.cd_paciente where (ate.dt_atendimento - ate.DT_AGENDAMENTO) >= 40
Se preferir procure mais detalhes em
http://aprendaplsql.com
http://glufke.net
https://www.devmedia.com.br/guia/oracle/34365
Boa Tarde Luiz,
Estava tentando chegar a seu raciocínio, porem acredito que não satisfaça ao que quero, pois pelo que intendi seu select irá selecionar todos os atendimentos que foram realizados de 40 dias atrás até a data de hoje, correto? Na verdade o que quero é, listar todos os atendimentos que o intervalo entre um e outro foram menor do que 40 dias, independente da data, ou seja, poderá trazer um atendimento do ano passado que teve menos de 40 dias de intervalos entre eles, do mesmo paciente. Estou apanhando feio aqui.
Estava tentando chegar a seu raciocínio, porem acredito que não satisfaça ao que quero, pois pelo que intendi seu select irá selecionar todos os atendimentos que foram realizados de 40 dias atrás até a data de hoje, correto? Na verdade o que quero é, listar todos os atendimentos que o intervalo entre um e outro foram menor do que 40 dias, independente da data, ou seja, poderá trazer um atendimento do ano passado que teve menos de 40 dias de intervalos entre eles, do mesmo paciente. Estou apanhando feio aqui.
GOSTEI 0