Mostrar veiculos que estao na garagem para MANUTENCAO (entraram hoje ou seja estao presentes na garagem agora ) mas que não tenham mais SERVIÇOS em aberto para ele.
Montar uma Query onde apareçam os veiculos LIBERADOS pela oficina.
Tenho uma tabela com os Veiculos presentes na garagem (Tabela: Nagaragem)
Tenho outra tabela com os Servicos com os campos Aberto_em, Fechado_em
fiz algo do tipo (comentando para facilitar...)
SELECT N.Veiculo #quero mostrar o numero do veiculo que está PRESENTE na tabela NAGARAGEM
FROM Nagaragem as N # apelidei de N
join SERVICOS as S on S.veiculo = N.Veiculo #unindo com uma consulta na tabela SERVICOS
WHERE cast(S.os_abertoem as date) = cast(NOW() as date) and S.os_fechadoem NOT IS NULL # cuja data de abertura do servico seja HOJE e serviço esteja fechado
até aqui 1000 maravilha ou seja se o carro está presente, teve o servico aberto HOJE e já foi FINALIZADO então teoricamente ele estaria LIBERADO
só que não!
ele pode ter outros servicos na tabela (SERVICOS) em aberto o que impediria a condição de LIBERADO.
continuando a clausula WHERE eu tinha que fazer algo do tipo...
and cast(S.os_abertoem as date) = cast(NOW() as date) and S.os_fechadoem IS NULL mas isso é conflitante com o where acima
resumindo
o carro aparecerá como resultado da FDQUERY se
1)Estiver na tabela NAGARAGEM indicando que esta presente
2)Tiver pelo menos uma ordem de serviço aberta HOJE --- cast(S.os_abertoem as date) = cast(NOW() as date)
3)não tiver NENHUMA OUTRA Ordem de SErvico aberta (consultando a mesma tabela SERVICOS)
pois pode ser que um serviço de MECANICA esteja concluida mas outro de elétrica ainda esteja em aberto.
** não SEI FAZER ISSO
Quem souber fazer o select por favor...
não sei se teria que ser um select aninhado usando o group by...
Pergunta
eKrinski
Agradeço a todos que colaborarem.
O desafio simples a princípio é o seguinte:
Mostrar veiculos que estao na garagem para MANUTENCAO (entraram hoje ou seja estao presentes na garagem agora ) mas que não tenham mais SERVIÇOS em aberto para ele.
Montar uma Query onde apareçam os veiculos LIBERADOS pela oficina.
Tenho uma tabela com os Veiculos presentes na garagem (Tabela: Nagaragem)
Tenho outra tabela com os Servicos com os campos Aberto_em, Fechado_em
fiz algo do tipo (comentando para facilitar...)
SELECT N.Veiculo #quero mostrar o numero do veiculo que está PRESENTE na tabela NAGARAGEM
FROM Nagaragem as N # apelidei de N
join SERVICOS as S on S.veiculo = N.Veiculo #unindo com uma consulta na tabela SERVICOS
WHERE cast(S.os_abertoem as date) = cast(NOW() as date) and S.os_fechadoem NOT IS NULL # cuja data de abertura do servico seja HOJE e serviço esteja fechado
até aqui 1000 maravilha ou seja se o carro está presente, teve o servico aberto HOJE e já foi FINALIZADO então teoricamente ele estaria LIBERADO
só que não!
ele pode ter outros servicos na tabela (SERVICOS) em aberto o que impediria a condição de LIBERADO.
continuando a clausula WHERE eu tinha que fazer algo do tipo...
and cast(S.os_abertoem as date) = cast(NOW() as date) and S.os_fechadoem IS NULL mas isso é conflitante com o where acima
resumindo
o carro aparecerá como resultado da FDQUERY se
1)Estiver na tabela NAGARAGEM indicando que esta presente
2)Tiver pelo menos uma ordem de serviço aberta HOJE --- cast(S.os_abertoem as date) = cast(NOW() as date)
3)não tiver NENHUMA OUTRA Ordem de SErvico aberta (consultando a mesma tabela SERVICOS)
pois pode ser que um serviço de MECANICA esteja concluida mas outro de elétrica ainda esteja em aberto.
** não SEI FAZER ISSO
Quem souber fazer o select por favor...
não sei se teria que ser um select aninhado usando o group by...
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.