3 Replies Latest reply: Jun 6, 2017 4:15 PM by Felip Drechsler RSS

    Extracción de ultimo registro desde SQL

    Andrés Patete

      Buenas estimados compañeros de la comunidad de QV. Tengo el siguiente inconveniente:

       

      Necesito "extraer" el valor del ultimo y el penúltimo registro ingresado a una base de datos que se encuentra en SQL, para entonces hacer una operación sencilla con estos.

       

      No he encontrado la forma de poder realizar esta acción, si alguno de ustedes puede darme alguna sugerencia, seria perfecto.

       

      Saludos!

        • Re: Extracción de ultimo registro desde SQL
          Felip Drechsler

          Olá Andrés,

           

          Isso irá depender de qual base de dados você está utilizando, e em qual tipo de dado você irá trabalhar (número, string, etc).

          Exemplos de comando SQL para extração por banco:

           

          Sql Server

          SELECT TOP 1 * FROM Table ORDER BY ID DESC

          MySql

          SELECT * FROM Table ORDER BY ID DESC LIMIT 1

          sql server - How to select the last record of a table in SQL? - Stack Overflow

          • Re: Extracción de ultimo registro desde SQL
            Andrés Patete

            Obrigado pela sua resposta Felip. Eu tenho concretamente essa situacao:

            A base de datos de SQL é uma tabela, nessa tabela, eu preciso extraer o penultimo e o ultimo registro, para entao eu poder fazer uma formula simple con multiplcao e divisao. Esse é um exemplo da tabela:

            Exemplo.png

            Entao, eu quero fazer en qlikview uma tabela que marque so isso:

            Indicadores.png

            Eu quero calcular directamente "indicador" dentro de qlikview y que aparezca em uma tabela assim.

            Alguma sugerencia?

              • Re: Extracción de ultimo registro desde SQL
                Felip Drechsler

                Andrés,

                 

                É possível fazer algo assim a partir da tabela que você têm (no meu caso tive que criar a tabela com inline):

                 

                fakedata:

                load * Inline

                [

                  Fecha,t(s),x(t),V(t)

                  01/06/2016,10,475,88

                  02/06/2016,29,3591,240

                  03/06/2016,48,9595,392

                  04/06/2016,67,18487,544

                  05/06/2016,86,30267,696

                  06/06/2016,105,44935,848

                  07/06/2016,124,62497,1000

                  08/06/2016,143,82935,115

                  09/06/2016,162,106267,1304

                  10/06/2016,181,132487,1456

                  11/06/2016,200,161595,1608

                  12/06/2016,300,190703,1760

                  13/06/2016,400,219811,1912

                  14/06/2016,500,248919,2064

                ];

                 

                 

                NoConcatenate

                First 2

                data:

                Load

                  Fecha,

                  [t(s)],

                  [x(t)],

                  [V(t)]

                Resident fakedata

                order by Fecha desc;

                 

                 

                drop table fakedata;

                 

                O comando First 2 pegará as primeiras da tabela, que está ordenada de maneira decrescente, sendo as últimas duas que você precisa.

                A tabela "data" terá só os 2 registros.

                 

                Sample.png

                 

                Felipe.