Buscar recurso disponível em determinado período
Boa noite pessoal!
Preciso de uma ajuda com SQL.
É o seguinte: Tenho uma tabela de atividades com as colunas cod_recurso, cod_area, dt_inicio,dt_fim e preciso buscar os recursos de uma área específica que não estão sendo utilizados em um determinado período.
O período por exemplo é do dia 05-08-2017 a 25-08-2017, se o usuário da área já estiver alocado neste período ou não possa assumir outra atividade neste período, não deve ser listado e sim somente os que estão livres.
Estou fazendo assim, mas acho que não está correto.
Agradeço a ajuda
Preciso de uma ajuda com SQL.
É o seguinte: Tenho uma tabela de atividades com as colunas cod_recurso, cod_area, dt_inicio,dt_fim e preciso buscar os recursos de uma área específica que não estão sendo utilizados em um determinado período.
O período por exemplo é do dia 05-08-2017 a 25-08-2017, se o usuário da área já estiver alocado neste período ou não possa assumir outra atividade neste período, não deve ser listado e sim somente os que estão livres.
Estou fazendo assim, mas acho que não está correto.
select distinct tr.cod_tipo_recurso, tr.nm_tipo_recurso, tr.cod_area from tipo_recurso as tr where tr.cod_area = 6 and tr.cod_tipo_recurso not in (select distinct at.cod_tipo_recurso from atividade_recurso as at where at.cod_area = 6 and dt_plano_inicio BETWEEN '2017-08-05' AND '2017-08-25' and dt_plano_fim BETWEEN '2017-08-05' AND '2017-08-25' )
Agradeço a ajuda
Marcos
Curtidas 0
Respostas
Marcos
08/08/2017
Mais detalhes:
Tabela recurso
cod_recurso cod_area nome
1 6 João
2 6 Marcos
3 6 Pedro
Tabela atividade
cod_atividade cod_recurso cod_area dt_inicio dt_fim
1 1 6 2017-08-05 2017-08-20
2 2 6 2017-08-19 2017-08-19
Com o SQL abaixo está mostrando todos os recursos, mas na verdade deveria mostrar somente o usuário Pedro que não está sendo usado no período.
Tabela recurso
cod_recurso cod_area nome
1 6 João
2 6 Marcos
3 6 Pedro
Tabela atividade
cod_atividade cod_recurso cod_area dt_inicio dt_fim
1 1 6 2017-08-05 2017-08-20
2 2 6 2017-08-19 2017-08-19
Com o SQL abaixo está mostrando todos os recursos, mas na verdade deveria mostrar somente o usuário Pedro que não está sendo usado no período.
select distinct r.cod_recurso, r.nome, r.cod_area from recurso as r where r.cod_area = 6 and r.cod_recurso not in (select distinct at.cod_recurso from atividade as at where at.cod_area = 6 and dt_inicio >= ''''2017-08-04'''' AND dt_fim <= ''''2017-08-18'''' )
GOSTEI 0
Santos
08/08/2017
Opa Marcos, beleza?
Sem o banco rodando aqui fica complicado testar a consulta...
Mas você já testou remover o distinct do segundo select? Olhando assim, a consulta parece estar certa, mas sem o banco pra testar fica ruim de te dar alguma resposta concreta...
Abraços!
Sem o banco rodando aqui fica complicado testar a consulta...
Mas você já testou remover o distinct do segundo select? Olhando assim, a consulta parece estar certa, mas sem o banco pra testar fica ruim de te dar alguma resposta concreta...
Abraços!
GOSTEI 0