11 Replies Latest reply: Jun 21, 2017 10:47 AM by Márcio Rodrigo Campestrini RSS

    Porcentagem

    Oliveira Forlan

      Tenho uma tabela que registra as paradas existente no servidor(máquinas):

       

      Maquina Mês   Valor (segundos)

          1            01          30                  

          1            02          20

          1            03          10

          1            05          25

         

      Se observamos no mês 04 e 06 os mesmos não teve nenhuma parada, ai não existe essa informação na tabela. funcionou 100%.

       

      Como fazer esse que ele fique dessa forma:

          1            01      30                  

          1            02       20

          1            03       10

          1            04       00

          1            05       25

          1            06       00

       

      Quando não existir dados na tabela fique 00?

          • Re: Porcentagem
            Oliveira Forlan

            Márcio,

            Estou tentando dessa forma:

            calendarioqtd:

            LOAD * INLINE [
            mesmonit    , Qtd  
            01           , 31
            02          , 28   
            03               ,   31    
            04               ,   30
            05               ,   31    
            06                  , 30    
            07                  , 31    
            08               ,   31    
            09                  , 30    
            10                  , 31    
            11                  , 30    
            12                  , 31    


            ]
            ;

            left join
            //monitoramento:

            LOAD idcliente, idtiporecurso,dsNomeTipoRecurso,idrecurso,dsnomerecurso,
            idrecursopai,idplugin,dsDescricaoPlugin,idgruporesponsavel,
            dsNomeGrupoSolucao,dsestadossla,nrslacontratado,
            dtinicial as 'dtinicialmonit' ,
            date(dtinicial) as 'dtimonit',
            Hour(dtinicial) & ':' & Minute(dtinicial) & ':' & Second(dtinicial) as 'horaimonit',
            year(dtinicial) as 'anomonit',
            Month(dtinicial) as 'mesmonit',
            dtfinal as 'dtfinmonit',
            date(dtfinal)    as 'dtfmonit',
            Hour(dtfinal) & ':' & Minute(dtfinal) & ':' & Second(dtfinal) as 'horafmonit',
            cdestado,
            dsEstado,
            nrsegundos,
            Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',
            nrMinutosAteMudarGrupoSolucao,
            dtUltimoAviso,
            nrMinutosAteProximoAviso
            FROM
            [..\QVD_E\TBE_monitoramento.QVD]
            (
            qvd);

            No load de baixo não tem o mês de março ai preciso que mostre 01,02,null,04 e 05. Esta mostrando assim 01,02,04,05.imagem.png

              • Re: Porcentagem
                Márcio Rodrigo Campestrini

                Oliveira

                 

                Você chegou a analisar o post que te enviei? Lá tem a solução para o que você está procurando.

                  • Re: Porcentagem
                    Oliveira Forlan

                    Márcio,

                     

                    Analisei mais não conseguir entender bem como adapta a minha situação. Tentei fazer +- parecido mais não funcionou. Teria como você informar aonde estou errando?

                     

                    calendarioqtd:

                    LOAD * INLINE [
                    mesmonit    , Qtd  
                    01           , 31
                    02          , 28   
                    03               ,   31    
                    04               ,   30
                    05               ,   31    
                    06                  , 30    
                    07                  , 31    
                    08               ,   31    
                    09                  , 30    
                    10                  , 31    
                    11                  , 30    
                    12                  , 31    


                    ]
                    ;


                    monitoramento:

                    LOAD idcliente,
                    date(dtinicialas 'dtimonit',
                    year(dtinicialas 'anomonit',
                    Month(dtinicial) as 'mesmonit',
                    dtfinal as 'dtfinmonit',
                    date(dtfinal)    as 'dtfmonit',
                    cdestado,
                    dsEstado,
                    nrsegundos,
                    Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',      
                    FROM
                    [..\QVD_E\TBE_monitoramento.QVD]
                    (
                    qvd);

                    left join (calendarioqtd)
                    load mesmonit Resident  monitoramento;

                    juncao:

                    NoConcatenate load If(IsNull(mesmonit),Peek(mesmonit),mesmonit) as mesmonit
                    Resident calendarioqtd;

                      • Re: Porcentagem
                        Márcio Rodrigo Campestrini

                        Segue a provável solução

                         

                         

                        tempMonitoramento:

                        LOAD idcliente, idtiporecurso,dsNomeTipoRecurso,idrecurso,dsnomerecurso,
                        idrecursopai,idplugin,dsDescricaoPlugin,idgruporesponsavel,
                        dsNomeGrupoSolucao,dsestadossla,nrslacontratado,
                        dtinicial as 'dtinicialmonit' ,
                        date(dtinicial) as 'dtimonit',
                        Hour(dtinicial) & ':' & Minute(dtinicial) & ':' & Second(dtinicial) as 'horaimonit',
                        year(dtinicial) as 'anomonit',
                        Month(dtinicial) as 'mesmonit',
                        dtfinal as 'dtfinmonit',
                        date(dtfinal)    as 'dtfmonit',
                        Hour(dtfinal) & ':' & Minute(dtfinal) & ':' & Second(dtfinal) as 'horafmonit',
                        cdestado,
                        dsEstado,
                        nrsegundos,
                        Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',
                        nrMinutosAteMudarGrupoSolucao,
                        dtUltimoAviso,
                        nrMinutosAteProximoAviso
                        FROM [..\QVD_E\TBE_monitoramento.QVD] (qvd);


                        MinMaxDate:

                        Load Min(dtinicialmonit) As MinDate, Max(dtinicialmonit) As MaxDate Resident tempMonitoramento;

                        Let vMinDate = Peek('MinDate',-1,'MinMaxDate') - 1;

                             Let vMaxDate = Peek('MaxDate',-1,'MinMaxDate')    ;

                         

                        Join (tempMonitoramento)

                        Load Date(RecNo() + $(vMinDate)) As dtinicialmonit AudoGenerate vMAxDate - vMinDate;


                        Monitoramento:

                        NoConcatenate

                        Load idcliente, idtiporecurso,dsNomeTipoRecurso,idrecurso,dsnomerecurso,
                        idrecursopai,idplugin,dsDescricaoPlugin,idgruporesponsavel,
                        dsNomeGrupoSolucao,dsestadossla,nrslacontratado,
                        dtfinal as 'dtfinmonit',
                        date(dtfinal)    as 'dtfmonit',
                        Hour(dtfinal) & ':' & Minute(dtfinal) & ':' & Second(dtfinal) as 'horafmonit',
                        cdestado,
                        dsEstado,
                        nrsegundos,
                        Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',
                        nrMinutosAteMudarGrupoSolucao,
                        dtUltimoAviso,
                        nrMinutosAteProximoAviso,

                        If(IsNull(dtinicialmonit ), Peek(dtinicialmonit ), dtinicialmonit ) As dtinicialmonit

                        Resident tempMonitoramento

                        Order By dtinicialmonit ;


                        Drop table MinMaxDate, tempMonitoramento;

                          • Re: Porcentagem
                            Oliveira Forlan

                            Desculpe o incomodo que estou de dando. Sou inciante no QlikView.

                             

                            Tentei utilizar o código que você passou, tinha algumas inconsistência que conseguir resolver, mais essa não estou encontrando aonde estou errando.

                             

                            imagem1.png

                            tempMonitoramento:
                            LOAD idcliente,
                            idtiporecurso,
                            dsNomeTipoRecurso,
                            idrecurso,
                            dsnomerecurso,
                            idrecursopai,
                            idplugin,
                            dsDescricaoPlugin,
                            idgruporesponsavel,
                            dsNomeGrupoSolucao,
                            dsestadossla,
                            nrslacontratado,
                            dtinicial as 'dtinicialmonit' ,
                            date(dtinicialas 'dtimonit',
                            Hour(dtinicial) & ':' & Minute(dtinicial) & ':' & Second(dtinicial) as 'horaimonit',
                            year(dtinicialas 'anomonit',
                            Month(dtinicial) as 'mesmonit',
                            dtfinal as 'dtfinmonit',
                            date(dtfinal)    as 'dtfmonit',
                            Hour(dtfinal) & ':' & Minute(dtfinal) & ':' & Second(dtfinal) as 'horafmonit',
                            cdestado,
                            dsEstado,
                            nrsegundos,
                            Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',      
                            nrMinutosAteMudarGrupoSolucao,
                            dtUltimoAviso,
                            nrMinutosAteProximoAviso
                            FROM [..\QVD_E\TBE_monitoramento.QVD] (qvd);


                            MinMaxDate:
                            Load Min(dtinicialmonit) As MinDate, Max(dtinicialmonit) As MaxDate Resident tempMonitoramento;
                            Let vMinDate = Peek('MinDate',-1,'MinMaxDate') - 1;
                            Let vMaxDate = Peek('MaxDate',-1,'MinMaxDate');

                            Join(tempMonitoramento)
                            Load Date(RecNo()+$(vMinDate)) As dtinicialmonit AutoGenerate vMAxDate - vMinDate;


                            Monitoramento:
                            NoConcatenate
                            LOAD idcliente,
                            idtiporecurso,
                            dsNomeTipoRecurso,
                            idrecurso,
                            dsnomerecurso,
                            idrecursopai,
                            idplugin,
                            dsDescricaoPlugin,
                            idgruporesponsavel,
                            dsNomeGrupoSolucao,
                            dsestadossla,
                            nrslacontratado,
                            dtinicial as 'dtinicialmonit' ,
                            date(dtinicialas 'dtimonit',
                            Hour(dtinicial) & ':' & Minute(dtinicial) & ':' & Second(dtinicial) as 'horaimonit',
                            year(dtinicialas 'anomonit',
                            Month(dtinicial) as 'mesmonit',
                            dtfinal as 'dtfinmonit',
                            date(dtfinal)    as 'dtfmonit',
                            Hour(dtfinal) & ':' & Minute(dtfinal) & ':' & Second(dtfinal) as 'horafmonit',
                            cdestado,
                            dsEstado,
                            nrsegundos,
                            Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',      
                            nrMinutosAteMudarGrupoSolucao,
                            dtUltimoAviso,
                            nrMinutosAteProximoAviso,
                            If(IsNull(dtinicialmonit ), Peek(dtinicialmonit ), dtinicialmonit ) As dtinicialmonit
                            Resident tempMonitoramento
                            Order By dtinicialmonit ;
                             
                            Drop table MinMaxDate, tempMonitoramento;


                              • Re: Porcentagem
                                Márcio Rodrigo Campestrini

                                Troque vMAxDate por vMaxDate

                                  • Re: Porcentagem
                                    Oliveira Forlan

                                    O script funcionou sem erro, só não trouxe o resultado que eu estrou precisando. Irei tentar detalhar melhor a minha necessidade.

                                     

                                    Na tabela monrecursohistorico registra quando o servidor fica indisponível. se eu executar um select no banco fica assim:

                                     

                                    Maquina Mês Valor (segundos)

                                    1              01       30                 

                                    1              02       20

                                    1              03       10

                                    1              05       25

                                      

                                    Se observamos no mês 04 e 06 os mesmos não teve nenhuma parada, assim funcionou 100%.

                                     

                                    Existe a possibilidade que fique dessa forma no qlikview?

                                     

                                    1 01       30                 

                                    1 02       20

                                    1 03       10

                                    1 04       00

                                    1 05       25

                                    1 06       00

                                     

                                     

                                    No momento da execução do scripte do Qlikview ele criar essa linha.

                                     

                                    1 03       00

                                    1 06       00

                                     

                                      O proposito e que no gráfico mostre que os mês (03 e 06) o servidor funcionou 100%.

                                      • Re: Porcentagem
                                        Oliveira Forlan

                                        Preciso que ele fique desta forma abaixo:

                                        Ele vai preencher o campo anomonit com 2017 a datainicialmonit com a ultima data 18/05/2017 e nsegundos com zero

                                        Planilha.png

                                          • Re: Porcentagem
                                            Oliveira Forlan

                                            Hoje tentei fazer dessa forma:

                                             

                                            calendarioqtd:

                                            LOAD * INLINE [
                                            mesmonit    , Qtd  
                                            01           , 31
                                            02          , 28   
                                            03          ,  31    
                                            04          ,  30
                                            05             ,      31    
                                            06             ,      30    
                                            07             ,      31    
                                            08             ,      31    
                                            09             ,      30    
                                            10             ,      31    
                                            11             ,      30    
                                            12             ,      31    


                                            ]
                                            ;

                                            left join

                                            Monitoramento:

                                            LOAD idcliente,idtiporecurso,dsNomeTipoRecurso,idrecurso,dsnomerecurso, idrecursopai,idplugin,dsDescricaoPlugin,idgruporesponsavel,dsNomeGrupoSolucao,
                                            dsestadossla,nrslacontratado,//dtinicial,
                                                 If(IsNull(dtinicial), Peek(dtinicial), dtinicial) as dtinicial,
                                            date(dtinicialas 'dtimonit',
                                            Hour(dtinicial) & ':' & Minute(dtinicial) & ':' & Second(dtinicial) as 'horaimonit',
                                            //year(dtinicial)  as 'anomonit',
                                                 if(isnull(year(dtinicial)), peek(year(dtinicial)),year(dtinicial)) as 'anomonit',Month(dtinicial) as 'mesmonit', dtfinal as 'dtfinmonit',
                                            date(dtfinal)    as 'dtfmonit',
                                            Hour(dtfinal) & ':' & Minute(dtfinal) & ':' & Second(dtfinal) as 'horafmonit',cdestado,dsEstado, nrsegundos,
                                            Time(Time#(nrsegundos,'mm'), 'hh:mm:ss') as 'minutomonitoramento',      
                                            nrMinutosAteMudarGrupoSolucao, dtUltimoAviso, nrMinutosAteProximoAviso
                                            FROM
                                            [..\QVD_E\TBE_monitoramento.QVD]

                                            ele sempre mostra "-" no qual preciso que ele mostre os valores utilizando a função peek.peek1.png