Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por Avatar photoLeonardo Litz.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #83815
    Anônimo

      Preciso juntar em um único resultado o conteudo dos selects.

      SELECT CODIGO,NOME,SALDO FROM PRODUTOS

      SELECT CODIGO,SUM(VALOR) AS TOTAL FROM LANCAMENTOS GROUP BY CODIGO

      SELECT CODIGO,COUNT(CODIGO) AS TOTALREGISTROS FROM PEDIDOS GROUP BY CODIGO

      SELECT CODIGO,MAX(DATA) AS ULTIMOPEDIDO FROM PEDIDOS GROUP BY CODIGO

      resultado esperado

      CODIGO,NOME,SALDO,TOTAL,TOTALREGISTROS,ULTIMOPEDIDO

      Tentei union… inner… etc.. etc.. e não deu resultado já que o único campo em comum é o CODIGO.

      Alguma sugestão?

      #83817
      Avatar photoLeonardo Litz
      Participante

        Cara para vc utilizar o union, vc deve ter o mesmo numero de colunas e os types destas devem ser iguais.

        Na sua query vc pode fazer assim

        SELECT CODIGO,NOME,SALDO FROM PRODUTOS
        union
        SELECT CODIGO,to_char(SUM(VALOR)) AS TOTAL,null FROM LANCAMENTOS GROUP BY CODIGO
        union
        SELECT CODIGO,to_char(COUNT(CODIGO)) AS TOTALREGISTROS,null FROM PEDIDOS GROUP BY CODIGO
        union
        SELECT CODIGO,to_char(MAX(DATA)) AS ULTIMOPEDIDO,null FROM PEDIDOS GROUP BY CODIGO

        não sei se é o esperado por vc.

        Vlw Leonardo Litz

        #83820
        Anônimo

          Não é bem isso… pois o resultado é a mesma quantidade de campos mas com conteudos diferente.

          O que preciso é que a junção dos selects acima me retorne:

          CODIGO,NOME,SALDO,TOTAL,TOTALREGISTROS,ULTIMOPEDIDO

          Ou seja… 6 campos! Sem repetições.

          #83822
          Avatar photoLeonardo Litz
          Participante

            Desculpe não havia visto a formatação que vc deseja

            Vê se é isso que vc imagina, tomei como base de relacionamento entre as tabelas o campo codigo, se for outro ou houver mais um modifique que ira funcionar

            SELECT p.CODIGO,
            p.NOME,
            p.SALDO,
            (SELECT SUM(VALOR) AS TOTAL FROM LANCAMENTOS where codigo = p.codigo) as total,
            (SELECT COUNT(CODIGO) AS TOTALREGISTROS FROM PEDIDOS where codigo = p.codigo) as TOTALREGISTROS
            (SELECT MAX(DATA) AS ULTIMOPEDIDO FROM PEDIDOS where codigo = p.codigo) as ultimopedido
            FROM PRODUTOS p

            Vlw Leonardo Litz

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