Pular para o conteúdo
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #107030
    Avatar de Paulo WerneckPaulo Werneck
    Participante

      Pessoal

      no select abaixo, eu retorno a ultima data de um campo da tabela A e a ultima data de um campo da tabela B, eu queria retornar ambos mesmo que não exista um ou outro. alguém poderia me ajudar?


      SELECT
      PRESTADOR.CD_PRESTADOR,
      PRESTADOR.NM_PRESTADOR,
      MAX(PRE_MED.DT_PRE_MED) AS DT_ULTIMA_PRESCICAO,
      MAX(ATENDIME.DT_ATENDIMENTO) AS DT_ULTIMO_ATENDIMENTO
      FROM
      PRE_MED,
      ATENDIME,
      PRESTADOR
      WHERE
      PRE_MED.CD_PRESTADOR = PRESTADOR.CD_PRESTADOR AND
      ATENDIME.CD_PRESTADOR = PRESTADOR.CD_PRESTADOR
      GROUP BY
      PRESTADOR.CD_PRESTADOR,
      PRESTADOR.NM_PRESTADOR
      ORDER BY
      PRESTADOR.CD_PRESTADOR;

      #107031
      Avatar de rmanrman
      Participante

        @luckzin

        Recomendo o uso de JOIN. A QUERY fica mais limpa e de fácil entendimento.


        SELECT
        PRESTADOR.CD_PRESTADOR,
        PRESTADOR.NM_PRESTADOR,
        MAX(PRE_MED.DT_PRE_MED) AS DT_ULTIMA_PRESCICAO,
        MAX(ATENDIME.DT_ATENDIMENTO) AS DT_ULTIMO_ATENDIMENTO
        FROM PRESTADOR
        LEFT JOIN PRE_MED ON PRE_MED.CD_PRESTADOR = PRESTADOR.CD_PRESTADOR
        LEFT JOIN ATENDIME ON ATENDIME.CD_PRESTADOR = PRESTADOR.CD_PRESTADOR
        GROUP BY
        PRESTADOR.CD_PRESTADOR,
        PRESTADOR.NM_PRESTADOR
        ORDER BY
        PRESTADOR.CD_PRESTADOR;

        A QUERY que você fez corresponde ao INNER JOIN. Mas para trazer o que você quer é necessário utilizar o LEFT JOIN.

        Segue um artigo sobre os tipos de JOIN:

        http://www.devmedia.com.br/inner-cross-left-rigth-e-full-joins/21016

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress