Usuário com melhor resposta
casa com Data null

Pergunta
-
SELECT O.IDOBJOF AS 'Objeto',
M.MODELO AS 'Modelo',
S.DESCRICAO AS 'Sub_Modelo',
O.ANOFABR AS 'Ano_fabricação',
CASE WHEN O.ESTADOCONSERVACAO = 'N' THEN 'Novo'
WHEN O.ESTADOCONSERVACAO = 'U' THEN 'Usado'
WHEN O.ESTADOCONSERVACAO = 'R' THEN 'Reformado'
WHEN O.ESTADOCONSERVACAO = 'D' THEN 'Danificado'
WHEN O.ESTADOCONSERVACAO = 'R' THEN 'Reformado'
END 'Est_Conservação',
F1.DESCRICAO,
P.DESCRICAO,
T.DSCMOTIVO,
A.DATAENTRADA,
A.DATASAIDA
FROM OFOBJOFICINA AS O (NOLOCK)
INNER JOIN OFMODELO AS M (NOLOCK) ON M.IDTIPOOBJ = O.IDTIPOOBJ AND M.CODMODELO = O.CODMODELO
INNER JOIN OFSUBMODELO AS S (NOLOCK) ON O.IDTIPOOBJ = M.IDTIPOOBJ AND S.CODMODELO = O.CODMODELO
AND S.CODSUBMODELO = O.CODSUBMODELO
INNER JOIN OFSTATUSEQP AS F1 (NOLOCK) ON F1.CODCOLIGADA = O.CODCOLIGADA AND F1.CODSTATUS = O.STATUS
INNER JOIN OFHISTOBJFILHO AS A (NOLOCK) ON A.CODCOLIGADA = O.CODCOLIGADA AND A.IDOBJOF = O.IDOBJOF
INNER JOIN OFPOSICAOFILHO AS P ON P.CODPOSICAOFILHO = A.CODPOSICAOFILHO
LEFT JOIN OFMOTIVORETIRADAOBJFILHO AS T ON T.CODMOTIVORET = A.CODMOTIVORET
WHERE O.IDTIPOOBJ = '14'
AND O.STATUS = '8'
ORDER BY O.IDOBJOFResultado
A - B - C DATAENTRADA - DATASAIDA
2007-10-27 08:00:00.000 NULL
2011-01-12 08:00:00.000 2012-02-27 08:00:00.000Resultado esperado
quanto o campo DATASAIDA tiver valor tem que se chamar Desagregado e quanto for null Agregado
A - B - C DATAENTRADA - DATASAIDA Situacao
2007-10-27 08:00:00.000 NULL Agregado
2011-01-12 08:00:00.000 2012-02-27 08:00:00.000 DesagregadoObrigado pela ajuda
Respostas
-
Von, boa noite!
Tenta utilizar um case. Segue exemplo:
SELECT O.IDOBJOF AS 'Objeto', M.MODELO AS 'Modelo', S.DESCRICAO AS 'Sub_Modelo', O.ANOFABR AS 'Ano_fabricação', CASE WHEN O.ESTADOCONSERVACAO = 'N' THEN 'Novo' WHEN O.ESTADOCONSERVACAO = 'U' THEN 'Usado' WHEN O.ESTADOCONSERVACAO = 'R' THEN 'Reformado' WHEN O.ESTADOCONSERVACAO = 'D' THEN 'Danificado' WHEN O.ESTADOCONSERVACAO = 'R' THEN 'Reformado' END 'Est_Conservação', F1.DESCRICAO, P.DESCRICAO, T.DSCMOTIVO, A.DATAENTRADA, A.DATASAIDA, -- Verificação da situação CASE WHEN A.DATASAIDA IS NULL THEN 'Agregado' ELSE 'Desagregado' END Situacao FROM OFOBJOFICINA AS O (NOLOCK) INNER JOIN OFMODELO AS M (NOLOCK) ON M.IDTIPOOBJ = O.IDTIPOOBJ AND M.CODMODELO = O.CODMODELO INNER JOIN OFSUBMODELO AS S (NOLOCK) ON O.IDTIPOOBJ = M.IDTIPOOBJ AND S.CODMODELO = O.CODMODELO AND S.CODSUBMODELO = O.CODSUBMODELO INNER JOIN OFSTATUSEQP AS F1 (NOLOCK) ON F1.CODCOLIGADA = O.CODCOLIGADA AND F1.CODSTATUS = O.STATUS INNER JOIN OFHISTOBJFILHO AS A (NOLOCK) ON A.CODCOLIGADA = O.CODCOLIGADA AND A.IDOBJOF = O.IDOBJOF INNER JOIN OFPOSICAOFILHO AS P ON P.CODPOSICAOFILHO = A.CODPOSICAOFILHO LEFT JOIN OFMOTIVORETIRADAOBJFILHO AS T ON T.CODMOTIVORET = A.CODMOTIVORET WHERE O.IDTIPOOBJ = '14'
Espero que ajude! Luiz Phellipe
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 22 de março de 2012 18:59
- Marcado como Resposta Ronnie Von quinta-feira, 22 de março de 2012 20:43
Todas as Respostas
-
Von, boa noite!
Tenta utilizar um case. Segue exemplo:
SELECT O.IDOBJOF AS 'Objeto', M.MODELO AS 'Modelo', S.DESCRICAO AS 'Sub_Modelo', O.ANOFABR AS 'Ano_fabricação', CASE WHEN O.ESTADOCONSERVACAO = 'N' THEN 'Novo' WHEN O.ESTADOCONSERVACAO = 'U' THEN 'Usado' WHEN O.ESTADOCONSERVACAO = 'R' THEN 'Reformado' WHEN O.ESTADOCONSERVACAO = 'D' THEN 'Danificado' WHEN O.ESTADOCONSERVACAO = 'R' THEN 'Reformado' END 'Est_Conservação', F1.DESCRICAO, P.DESCRICAO, T.DSCMOTIVO, A.DATAENTRADA, A.DATASAIDA, -- Verificação da situação CASE WHEN A.DATASAIDA IS NULL THEN 'Agregado' ELSE 'Desagregado' END Situacao FROM OFOBJOFICINA AS O (NOLOCK) INNER JOIN OFMODELO AS M (NOLOCK) ON M.IDTIPOOBJ = O.IDTIPOOBJ AND M.CODMODELO = O.CODMODELO INNER JOIN OFSUBMODELO AS S (NOLOCK) ON O.IDTIPOOBJ = M.IDTIPOOBJ AND S.CODMODELO = O.CODMODELO AND S.CODSUBMODELO = O.CODSUBMODELO INNER JOIN OFSTATUSEQP AS F1 (NOLOCK) ON F1.CODCOLIGADA = O.CODCOLIGADA AND F1.CODSTATUS = O.STATUS INNER JOIN OFHISTOBJFILHO AS A (NOLOCK) ON A.CODCOLIGADA = O.CODCOLIGADA AND A.IDOBJOF = O.IDOBJOF INNER JOIN OFPOSICAOFILHO AS P ON P.CODPOSICAOFILHO = A.CODPOSICAOFILHO LEFT JOIN OFMOTIVORETIRADAOBJFILHO AS T ON T.CODMOTIVORET = A.CODMOTIVORET WHERE O.IDTIPOOBJ = '14'
Espero que ajude! Luiz Phellipe
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 22 de março de 2012 18:59
- Marcado como Resposta Ronnie Von quinta-feira, 22 de março de 2012 20:43
-