How to do this query in LINQ

Aug 13 2018 8:20 AM
Hello everyone!
 
I having a problem with doing the query in LINQ. I use Firebird and my query is:
 
  1. SELECT (R.DATA_TERMINO + M.INTERVALO_MANUTENCAO_PREVENTIVA) AS PROXIMA_MANUTENCAO,  
  2.        R.DATA_TERMINO,  
  3.        M.STATUS AS SITUACAO,  
  4.   
  5.        R.NUMERO_RM,  
  6.        M.MODELO,  
  7.        M.FABRICANTE,  
  8.        MT.CODMAT,  
  9.        MT.DESCRICAO AS MATERIAL,  
  10.        F.DESCRICAO AS FAMILIA_MATERIAL,  
  11.        S.DESCRICAO AS SERVICO,  
  12.        S.CODIGO_CENTRO_CUSTO,  
  13.        FU.NOME AS REQUISITANTE,  
  14.        CASE R.POSICAO_SETOR_RESPONSAVEL  
  15.           WHEN 0 THEN 'Em Manutenção'  
  16.           WHEN 1 THEN 'Aguardando Peça'  
  17.           WHEN 2 THEN 'Aguardando Avaliação'  
  18.           WHEN 3 THEN 'Não Autorizada'  
  19.           WHEN 4 THEN 'Concluída'  
  20.           WHEN 5 THEN 'Aguardando Liberação do Setor Solicitante'  
  21.        END AS POSICAO_RM  
  22. FROM MANUFATURA M  
  23. LEFT OUTER JOIN RM R ON  
  24.   M.ID_MATERIAL = R.ID_EQUIPAMENTO  
  25. LEFT OUTER JOIN MATERIAL MT ON  
  26.   M.ID_MATERIAL = MT.CODIGO  
  27. LEFT OUTER JOIN FAMILIA_MATERIAL F ON  
  28.   MT.CODIGO_FAMILIA_MATERIAL = F.CODIGO  
  29. LEFT OUTER JOIN SERVICOS S ON  
  30.   M.ID_SETOR = S.CODIGO  
  31. LEFT OUTER JOIN FUNCIONARIO FU ON  
  32.   R.ID_REQUISITANTE = FU.CODIGO  
  33. WHERE  
  34.     M.intervalo_manutencao_preventiva > 0  
  35.     AND R.PERIODICA = 'S'  
  36.     AND r.id_setor_requisitado = 39  
  37.     AND R.DATA_INICIO =  
  38.        (SELECT  
  39.            MAX(xR.DATA_INICIO)  
  40.         FROM  
  41.            RM xR  
  42.         WHERE  
  43.            xR.ID_EQUIPAMENTO = M.ID_MATERIAL  
  44.            AND xR.TIPO = 2  
  45.            AND xR.PERIODICA = 'S'  
  46.         )  
  47.     AND (SELECT FIRST 1 yR.SITUACAO FROM RM yR WHERE yR.ID_EQUIPAMENTO = M.ID_MATERIAL ORDER BY yR.DATA_TERMINO DESCIN (1,2,5)  
  48. ORDER BY S.DESCRICAO, 1  
 
How can I do this? Mainly when comparing date fields within a subselect.
 
Tks. 

Answers (4)