3 Replies Latest reply: May 15, 2015 9:53 AM by Marcos Vicentin RSS

    Variável no SQL

      Olá,

       

      Eu gostaria de criar algo assim:

       

      set vtable = 'TAB01'

      [TABLE]:

      SQL

      declare @xtab varchar(500)

      declare @sql varchar(max)

      set @xtab= $(vtable)

      Set @sql = 'SELECT * from '+@xtab


      Exec(@sql);


      Como posso fazer isso?


      Muito obrigado!

        • Re: Variável no SQL
          Cesar Accardi

          Ola Marcos,

           

          Eu acredito que nao e possivel executar outros comandos SQL atraves do QV como declaracao de variaveis, etc... Talvez voce consiga o resultado que deseja criando uma stored procedure no BD e chamando atraves do QV, lembro de ter visto um post semelhante aqui na comunidade a algum tempo.

           

          Abracos,

           

          Cesar

          • Re: Variável no SQL
            Fernando Tonial

            Olá Marcos,

             

            Se fizer pelo script do QlikView acredito que o resultado seja o mesmo;

             

            SET vTabela = NomeTabela;

            SET vWhere = Where Campo >=  2;

             

            $(vTabela):

            SQL SELECT * FROM $(vTabela) $(vWhere);

             

            Don't worry, be Qlik.

            Tonial.

            • Re: Variável no SQL

              Consegui deste jeito:

               

              set xpto = '';

              let counter = 1;

              let xempa = '010060';

              do while counter < 3

                let xemp = mid($(xempa),1,3);

                if $(counter) > 1 then

                set xpto = $(xpto) union all  ;

                set xpto = $(xpto) Select top 10 $(counter) as emp, E1_NUM from SE1$(xemp);

                Else

                set xpto =  Select top 10 $(counter) as emp, E1_NUM from SE1$(xemp);

                Endif

                let counter = counter + 1;

                let xempa = mid($(xempa),4,len($(xempa))-3);

              loop

               

               

              teste:

              SQL

              $(xpto);

               

              Obrigadão a todos!