6 Replies Latest reply: Jun 19, 2016 3:12 PM by Clever Anjos RSS

    Valor do saldo total

    Marcos Ferreira

      Bom dia.

      Eu de novo....

       

      Preciso saber quanto de saldo tenho, no final de uma determinada data....

      O que eu faço?

       

      Exemplo:

       

      Tenho milhares de produtos....

      Centenas de Grupos de Produto...

      Dezenas de almoxarifados...

       

      Preciso em uma determinada data, por exemplo no dia 30/09/2014, informar QUANTO foi o valor que ficou em meu saldo...

      Quer seria quantidade de saldo multiplicado pelo valor unitário de cada item em estoque, meu problema é saber como mostrar saldo do final do dia.... Não sei como fazer...

       

      Somados estes saldos, terei valor do produto, do grupo, do almoxarifado, da garagem (empresa de ônibus), etc....

       

      Meus campos são:

      LOAD

           DATA                            AS        DT_HIST_SALDO,

           MonthStart(DATA)                 AS        dt_inicio_mes,

           MonthEnd(DATA)                    AS        DT_fim_mes,

           MonthEnd(AddMonths(DATA, -1))    AS        DT_ULTIMO_DIA_MES_ANTERIOR,

           CD_ALMOXARIFADO,

           CD_EMPRESA,

           QT_HISTORICO_SALDO,

           VL_MEDIO                        AS        VL_ITEM_SALDO,

           (QT_HISTORICO_SALDO * VL_MEDIO) AS        VL_TOTAL_SALDO,    

           DT_ULT_MOVIMENTACAO            AS        DT_ULT_MOV_SALDO           

      FROM

      Fonte\Suprimentos\historico_saldo.qvd

      (qvd)

       

       

      Se puderem dar mais esta força....

       

      Obrigado.

      Marcos.

        • Re: Valor do saldo total

          Boa tarde Marco. Antes de avaliar sua pergunta, me chamou atenção você citar que trabalha com Empresa de Ônibus, sendo que também atuo exclusivamente nesta área a 15 anos.

           

          Quanto ao saldo você já tentou:

           

          Sum( If(Data <= MonthEnd(DATA), (QT_HISTORICO_SALDO * VL_MEDIO) ) as SaldoNoFinalDoMes

          • Re: Valor do saldo total
            Marcos Ferreira

            Em um dos painéis que temos, para achar este saldo em R$, este código foi feito (que nem seu se funciona), ainda não testei, mas a dúvida é, precisa realmente desse monte de código para mostrar isso?

             

            // SALDOS

            HIST_SALDO:

            LOAD DISTINCT ID_PRODUTO RESIDENT PRODUTO;

            LEFT JOIN

            LOAD (ID_EMPRESA & '|' & ID_ALMOXARIFADO & '|' & ID_PRODUTO & '|' & DT_HISTORICO_SALDO) AS SK_HIST_SALDO,

                 ID_ALMOXARIFADO,

                 ID_PRODUTO,

                 ID_EMPRESA,

                 (QT_HISTORICO_SALDO*VL_MEDIO) AS SALDO_ESTOQUE,

                 DT_HISTORICO_SALDO,

                 MonthName(DT_HISTORICO_SALDO) AS [Mês do Saldo],

                 Year(DT_HISTORICO_SALDO) as [Ano do Saldo]

            FROM [Fonte\Suprimentos\historico_saldo.qvd] (qvd)

            WHERE DT_HISTORICO_SALDO >=date#('01/01/2009')

            and   DT_HISTORICO_SALDO <= DT_ULT_MOVIMENTACAO;

             

             

            // Recupera a menor e maior data

            TMP_MaxMinData:

            LOAD

                Max(DT_HISTORICO_SALDO) AS Max,

                Min(DT_HISTORICO_SALDO) AS Min

            Resident HIST_SALDO;   

             

            LET vMaxOrderDate = Peek('Max');

            LET vMinOrderDate = Peek('Min');

             

            DROP Table TMP_MaxMinData;

             

             

            // Gera tabela com as datas entre menor e maior data

             

            CALENDARIO_TEMP1:

            NoConcatenate

            Load

                date(DT_HISTORICO_SALDO, 'DD/MM/YYYY') AS DT_HISTORICO_SALDO;

            Load

                date('$(vMinOrderDate)' + Recno() - 1) as DT_HISTORICO_SALDO

            AutoGenerate (YearEnd(vMaxOrderDate) - vMinOrderDate + 1);

             

            // só recupera o dia primeiro de cada mês

            HIST_SALDO_TEMP:

            NoConcatenate

            Load

                date(DT_HISTORICO_SALDO, 'DD/MM/YYYY') AS DT_HISTORICO

            Resident CALENDARIO_TEMP1

            where  day(DT_HISTORICO_SALDO) = day(MonthEnd(DT_HISTORICO_SALDO));

             

            DROP Table CALENDARIO_TEMP1    ;

             

             

            JOIN (HIST_SALDO_TEMP)

            LOAD distinct ID_ALMOXARIFADO,

                 ID_PRODUTO,

                 ID_EMPRESA

            Resident HIST_SALDO;

             

             

            LEFT JOIN (HIST_SALDO_TEMP)

            LOAD ID_ALMOXARIFADO,

                 ID_PRODUTO,

                 ID_EMPRESA,

                 (ID_EMPRESA & '|' & ID_ALMOXARIFADO & '|' & ID_PRODUTO ) AS AGRUPADOR,

                 SALDO_ESTOQUE,

                 DT_HISTORICO_SALDO as DT_HISTORICO

            Resident HIST_SALDO;

             

            DROP TABLE HIST_SALDO;

             

             

            HIST_SALDO:

            NoConcatenate

            LOAD

                 DT_HISTORICO as DT_HISTORICO_SALDO,

                 ID_ALMOXARIFADO,

                 ID_PRODUTO,

                 ID_EMPRESA,

                 (ID_EMPRESA & '|' & ID_ALMOXARIFADO & '|' & ID_PRODUTO & '|' & DT_HISTORICO) AS SK_HIST_SALDO,

                 MonthName(DT_HISTORICO) AS [Mês do Saldo],

                 Year(DT_HISTORICO) as [Ano do Saldo],

                       if(AGRUPADOR <> Previous(AGRUPADOR),

                       if(isnull(SALDO_ESTOQUE),0,SALDO_ESTOQUE),

                        if (isnull(SALDO_ESTOQUE),if(isnull(Previous(SALDO_ESTOQUE)),0,Peek('SALDO_ESTOQUE')),SALDO_ESTOQUE)) AS SALDO_ESTOQUE

            Resident HIST_SALDO_TEMP

            order by DT_HISTORICO, ID_ALMOXARIFADO, ID_PRODUTO, ID_EMPRESA;

             

            DROP TABLE HIST_SALDO_TEMP;

            • Re: Valor do saldo total
              Clever Anjos

              Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

              Have fun, be Qlik