none
Dúvida para montar consulta em LINQ RRS feed

  • Pergunta

  • Olá.

    Estou iniciando meus estudos com ASP.NET C# e me deparei com uma dúvida para montar uma query em LINQ. Utilizo banco de dados em Firebird e até agora tenho conseguido usar normalmente. Mas tive problemas para transformar essa query, principalmente quando tentei fazer comparar datas com o retorno de um subselect dentro do where.

    SELECT (R.DATA_TERMINO + M.INTERVALO_MANUTENCAO_PREVENTIVA) AS PROXIMA_MANUTENCAO,
           R.DATA_TERMINO,
           M.STATUS AS SITUACAO,
    
           R.NUMERO_RM,
           M.MODELO,
           M.FABRICANTE,
           MT.CODMAT,
           MT.DESCRICAO AS MATERIAL,
           F.DESCRICAO AS FAMILIA_MATERIAL,
           S.DESCRICAO AS SERVICO,
           S.CODIGO_CENTRO_CUSTO,
           FU.NOME AS REQUISITANTE,
           CASE R.POSICAO_SETOR_RESPONSAVEL
              WHEN 0 THEN 'Em Manutenção'
              WHEN 1 THEN 'Aguardando Peça'
              WHEN 2 THEN 'Aguardando Avaliação'
              WHEN 3 THEN 'Não Autorizada'
              WHEN 4 THEN 'Concluída'
              WHEN 5 THEN 'Aguardando Liberação do Setor Solicitante'
           END AS POSICAO_RM
    FROM MANUFATURA M
    LEFT OUTER JOIN RM R ON
      M.ID_MATERIAL = R.ID_EQUIPAMENTO
    LEFT OUTER JOIN MATERIAL MT ON
      M.ID_MATERIAL = MT.CODIGO
    LEFT OUTER JOIN FAMILIA_MATERIAL F ON
      MT.CODIGO_FAMILIA_MATERIAL = F.CODIGO
    LEFT OUTER JOIN SERVICOS S ON
      M.ID_SETOR = S.CODIGO
    LEFT OUTER JOIN FUNCIONARIO FU ON
      R.ID_REQUISITANTE = FU.CODIGO
    WHERE
        M.intervalo_manutencao_preventiva > 0
        AND R.PERIODICA = 'S'
        AND r.id_setor_requisitado = 39
        AND R.DATA_INICIO =
           (SELECT
               MAX(xR.DATA_INICIO)
            FROM
               RM xR
            WHERE
               xR.ID_EQUIPAMENTO = M.ID_MATERIAL
               AND xR.TIPO = 2
               AND xR.PERIODICA = 'S'
            )
        AND (SELECT FIRST 1 yR.SITUACAO FROM RM yR WHERE yR.ID_EQUIPAMENTO = M.ID_MATERIAL ORDER BY yR.DATA_TERMINO DESC) IN (1,2,5)
    ORDER BY S.DESCRICAO, 1
    
    

    Alguém conseguiria me ajudar?

    Obrigado.

    segunda-feira, 13 de agosto de 2018 10:17

Respostas

  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 19 de setembro de 2018 19:27
    Moderador

Todas as Respostas

  • Boa noite, 

    Conseguiu algum avanço no caso? 

    Se ainda não o que precisa?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 17 de agosto de 2018 22:41
    Moderador
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 19 de setembro de 2018 19:27
    Moderador