<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic FOR NEXT problem Incremental Load in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220903#M73760</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Before the end of the For next, try saving the QVD files in a temporary directory.&lt;/P&gt;&lt;P&gt;It´s work for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE style="overflow-x: scroll;"&gt;&lt;PRE style="margin: 0px;"&gt;&lt;BR /&gt;//LE TODOS CUBOS DA TABELA TEMPORARIA&lt;BR /&gt;TMP_CONFIGURACAO_CUBO:&lt;BR /&gt;LOAD DISTINCT&lt;BR /&gt;AL4_CODIGO&lt;BR /&gt;FROM TMP\TMP_CONFIGURACAO_CUBO.QVD (qvd);&lt;BR /&gt;&lt;BR /&gt;//LACO PARA PEGAR OS DADOS DE CADA CUBO&lt;BR /&gt;FOR I=1 TO fieldValueCount('AL4_CODIGO')&lt;BR /&gt;LET CODIGO = TRIM(fieldvalue('AL4_CODIGO',$(I)));&lt;BR /&gt;TRACE Carregando agora $(CODIGO);&lt;BR /&gt;/BUSCA AS RESTRICOES DE CADA CUBO&lt;BR /&gt;TMP_DADOS_$(CODIGO):&lt;BR /&gt;LOAD DISTINCT&lt;BR /&gt;AL4_CODIGO,&lt;BR /&gt;AL4_FILTER,&lt;BR /&gt;AL4_EXPRIN,&lt;BR /&gt;AL4_EXPRFI&lt;BR /&gt;FROM TMP\TMP_CONFIGURACAO_CUBO.QVD (qvd)&lt;BR /&gt;WHERE AL4_CODIGO = '$(CODIGO)';&lt;BR /&gt;&lt;BR /&gt;LET FILTRO = TRIM(fieldvalue('AL4_FILTER',1));&lt;BR /&gt;LET INICIO = TRIM(fieldvalue('AL4_EXPRIN',1));&lt;BR /&gt;LET FINAL = TRIM(fieldvalue('AL4_EXPRFI',1));&lt;BR /&gt;&lt;BR /&gt; //SE O CUBO POSSUI FILTRO USAR, CASO CONTRARIO USAR UR INICIAL E UR FINAL&lt;BR /&gt; IF IsNull(TRIM(fieldvalue('AL4_FILTER',1))) OR LEN(TRIM(fieldvalue('AL4_FILTER',1))) &amp;lt; 5 THEN&lt;BR /&gt; SET FILTRO = TRIM(AK5_CODIGO) &amp;gt;= '$(INICIO)' AND TRIM(AK5_CODIGO)&amp;lt;= '$(FINAL)';&lt;BR /&gt;END IF&lt;BR /&gt;//BUSCAR AS URS COM TAMANHO DE 12 CARACTERES POR CUBO&lt;BR /&gt;TMP_FILTRO_POR_UR_$(CODIGO):&lt;BR /&gt;LOAD&lt;BR /&gt; CODIGO AS [Código cubo],&lt;BR /&gt; "AK5_CODIGO" AS [Código unidade resultado];&lt;BR /&gt; SQL SELECT AK5_CODIGO,&lt;BR /&gt; '$(CODIGO)' AS CODIGO&lt;BR /&gt; FROM SA_SIGA.AK5900&lt;BR /&gt;WHERE&lt;BR /&gt;($(FILTRO)) AND&lt;BR /&gt;LENGTH(TRIM(AK5_CODIGO)) = 12 AND&lt;BR /&gt; AK5_MSBLQL = 2 AND&lt;BR /&gt; D_E_L_E_T_ = ' '&lt;BR /&gt;ORDER BY "AK5_CODIGO";&lt;BR /&gt;&lt;BR /&gt; //GRAVA DADOS TEMPORARIOS&lt;BR /&gt; STORE TMP_FILTRO_POR_UR_$(CODIGO) INTO TMP\TMP_FILTRO_POR_UR_$(CODIGO).QVD;&lt;BR /&gt;&lt;BR /&gt;DROP TABLE TMP_DADOS_$(CODIGO);&lt;BR /&gt;DROP TABLE TMP_FILTRO_POR_UR_$(CODIGO);&lt;BR /&gt;&lt;BR /&gt;LET CODIGO = Null();&lt;BR /&gt;LET FILTRO = Null();&lt;BR /&gt;LET INICIO = Null();&lt;BR /&gt;LET FINAL = Null();&lt;BR /&gt;NEXT&lt;BR /&gt;&lt;BR /&gt;DROP TABLE TMP_CONFIGURACAO_CUBO;&lt;BR /&gt;&lt;BR /&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;BR /&gt;&lt;BR /&gt;//BUSCA TODOS CUBOS COM SUAS RESPECTIVAR URS&lt;BR /&gt;ACESSO_UR_CUBO:&lt;BR /&gt;LOAD * FROM TMP\TMP_FILTRO_POR_UR_*.QVD (qvd);&lt;BR /&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Feb 2011 00:42:03 GMT</pubDate>
    <dc:creator />
    <dc:date>2011-02-18T00:42:03Z</dc:date>
    <item>
      <title>FOR NEXT problem Incremental Load</title>
      <link>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220902#M73759</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have an app where I want to look through a set of historical quarterly qvd's, replace the missing ones and replace the current quarter at each reload.&lt;/P&gt;&lt;P&gt;The code ALMOST works. I am using a FOR NEXT loop to go through the quarters and an IF statement to decide if it meets any of the requirements that necessitate production of a new QVD. It continues on to the next quarter when skipping, but after writing the first QVD, my peek statement does not find the next quarter... It comes up null. This of course results in an error once the IF statement processes the date like '/1/'. I posted a sample of my HIGHLY SIMPLIFIED CODE below to give an example, but the example happens to work fine. I have also posted the whole tab of code but it won't be runnable stand-alone.&lt;/P&gt;&lt;P&gt;Here is the pertinent log where the error occurs. Notice the PEEK satement populates with a row number, but the variable does not get populated. The table still exists so why is it not picking up a value?&lt;/P&gt;&lt;P&gt;2/17/2011 12:46:14 PM: 0574 LET vPeekRow = 7-1&lt;BR /&gt;2/17/2011 12:46:14 PM: 0575 LET vYearQuarterCursor = PEEK('YearQuarter',6,TempYearQuarter)&lt;BR /&gt;2/17/2011 12:46:14 PM: 0576 TRACE vYearQuarterCursor=&lt;BR /&gt;2/17/2011 12:46:14 PM: 0576 vYearQuarterCursor=&lt;/P&gt;&lt;P&gt;Any thoughts are appreciated.&lt;/P&gt;&lt;P&gt;Simplified example (this will work fine in QV stand-alone):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE ___default_attr="plain" class="jive_text_macro jive_macro_code" jivemacro="code"&gt;TempYearQuarter:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt; YearQuarterRowNum, YearQuarter&lt;BR /&gt; 1, 2009-Q1&lt;BR /&gt; 2, 2009-Q2&lt;BR /&gt; 3, 2009-Q3&lt;BR /&gt; 4, 2009-Q4&lt;BR /&gt; 5, 2010-Q1&lt;BR /&gt; 6, 2010-Q2&lt;BR /&gt; 7, 2010-Q3&lt;BR /&gt; 8, 2010-Q4&lt;BR /&gt; 9, 2011-Q1&lt;BR /&gt; 10, 2011-Q2&lt;BR /&gt;];&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;// Which YearQuarter is current date in?&lt;BR /&gt;LET vCurrentYearQuarter = YEAR(TODAY()) &amp;amp; '-' &amp;amp; 'Q' &amp;amp; CEIL(Month(TODAY())/3);&lt;BR /&gt;&lt;BR /&gt;// Remainder of this script tab is a loop that creates QVD's for each year-quarter combination that exists for&lt;BR /&gt;// sales, aggsales and forecasts.&lt;BR /&gt;&lt;BR /&gt;LET vYearQuarterRowNumMin = PEEK('YearQuarterRowNum',0,TempYearQuarter);&lt;BR /&gt;LET vYearQuarterRowNumMax = PEEK('YearQuarterRowNum',-1,TempYearQuarter);&lt;BR /&gt;LET vYearQuarterRowNumCursor = $(vYearQuarterRowNumMin);&lt;BR /&gt;&lt;BR /&gt;FOR vYearQuarterRowNumCursor = $(vYearQuarterRowNumMin) TO $(vYearQuarterRowNumMax)&lt;BR /&gt;&lt;BR /&gt; LET vStartTime = NOW();&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Let vQuery = len(tablenumber('TempYearQuarter'));&lt;BR /&gt;TRACE Length= $(vQuery);&lt;BR /&gt;&lt;BR /&gt; LET vPeekRow = $(vYearQuarterRowNumCursor)-1;&lt;BR /&gt; LET vYearQuarterCursor = PEEK('YearQuarter',$(vPeekRow),TempYearQuarter);&lt;BR /&gt; TRACE vYearQuarterCursor=$(vYearQuarterCursor);&lt;BR /&gt; LET vDateMin = ((RIGHT('$(vYearQuarterCursor)',1)*3)-2) &amp;amp; '/1/' &amp;amp; LEFT('$(vYearQuarterCursor)',4);&lt;BR /&gt; TRACE vDateMin=$(vDateMin);&lt;BR /&gt; LET vDateMax = (RIGHT('$(vYearQuarterCursor)',1)*3) &amp;amp; IF(RIGHT('$(vYearQuarterCursor)',1)= 2 OR RIGHT('$(vYearQuarterCursor)',1)= 3 ,'/30/','/31/') &amp;amp; LEFT('$(vYearQuarterCursor)',4);&lt;BR /&gt; TRACE vDateMax=$(vDateMax);&lt;BR /&gt;&lt;BR /&gt; // Set conditions for creating a QVD pair.&lt;BR /&gt; IF ($(vYearQuarterCursor) = $(vCurrentYearQuarter)) THEN&lt;BR /&gt;&lt;BR /&gt; TRACE This would create QVD for $(vYearQuarterCursor);&lt;BR /&gt; LET vEndTime = NOW();&lt;BR /&gt;&lt;BR /&gt; ELSE&lt;BR /&gt; TRACE This would skip QVD for $(vYearQuarterCursor);&lt;BR /&gt; END IF&lt;BR /&gt;&lt;BR /&gt;NEXT&lt;BR /&gt;&lt;BR /&gt;DROP TABLE TempYearQuarter;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;P&gt;Real Code (where is my problem?):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE ___default_attr="plain" class="jive_text_macro jive_macro_code" jivemacro="code"&gt;// Create a table with all the quarters sales and forecasts exist for.&lt;BR /&gt;TempYearQuarter1:&lt;BR /&gt;LOAD DISTINCT YEAR(Date) &amp;amp; '-' &amp;amp; 'Q' &amp;amp; CEIL(Month(Date)/3) AS YearQuarter;&lt;BR /&gt;//ROWNO() AS YearRowNum;&lt;BR /&gt;SQL SELECT *&lt;BR /&gt;FROM $(vDB).dbo."v_AggregatedSalesHistoryProfit";&lt;BR /&gt;//ORDER BY Date;&lt;BR /&gt;&lt;BR /&gt;JOIN (TempYearQuarter1)&lt;BR /&gt;LOAD DISTINCT YEAR(ForeCastDate) &amp;amp; '-' &amp;amp; 'Q' &amp;amp; CEIL(Month(ForeCastDate)/3) AS YearQuarter;&lt;BR /&gt;//ROWNO() AS YearRowNum;&lt;BR /&gt;SQL SELECT *&lt;BR /&gt;FROM $(vDB).dbo.ForecastGroupScenario;&lt;BR /&gt;&lt;BR /&gt;TempYearQuarter:&lt;BR /&gt;LOAD DISTINCT YearQuarter,&lt;BR /&gt; ROWNO() AS YearQuarterRowNum&lt;BR /&gt;RESIDENT TempYearQuarter1&lt;BR /&gt;ORDER BY YearQuarter;&lt;BR /&gt;DROP TABLE TempYearQuarter1;&lt;BR /&gt;&lt;BR /&gt;// Which YearQuarter is current date in?&lt;BR /&gt;LET vCurrentYearQuarter = YEAR(TODAY()) &amp;amp; '-' &amp;amp; 'Q' &amp;amp; CEIL(Month(TODAY())/3);&lt;BR /&gt;&lt;BR /&gt;// Remainder of this script tab is a loop that creates QVD's for each year-quarter combination that exists for&lt;BR /&gt;// sales, aggsales and forecasts.&lt;BR /&gt;&lt;BR /&gt;LET vYearQuarterRowNumMin = PEEK('YearQuarterRowNum',0,TempYearQuarter);&lt;BR /&gt;LET vYearQuarterRowNumMax = PEEK('YearQuarterRowNum',-1,TempYearQuarter);&lt;BR /&gt;LET vYearQuarterRowNumCursor = $(vYearQuarterRowNumMin);&lt;BR /&gt;&lt;BR /&gt;FOR vYearQuarterRowNumCursor = $(vYearQuarterRowNumMin) TO $(vYearQuarterRowNumMax)&lt;BR /&gt;&lt;BR /&gt; LET vStartTime = NOW();&lt;BR /&gt;&lt;BR /&gt; LET vPeekRow = $(vYearQuarterRowNumCursor)-1;&lt;BR /&gt; LET vYearQuarterCursor = PEEK('YearQuarter',$(vPeekRow),TempYearQuarter);&lt;BR /&gt; TRACE vYearQuarterCursor=$(vYearQuarterCursor);&lt;BR /&gt; LET vDateMin = ((RIGHT('$(vYearQuarterCursor)',1)*3)-2) &amp;amp; '/1/' &amp;amp; LEFT('$(vYearQuarterCursor)',4);&lt;BR /&gt; TRACE vDateMin=$(vDateMin);&lt;BR /&gt; LET vDateMax = (RIGHT('$(vYearQuarterCursor)',1)*3) &amp;amp; IF(RIGHT('$(vYearQuarterCursor)',1)= 2 OR RIGHT('$(vYearQuarterCursor)',1)= 3 ,'/30/','/31/') &amp;amp; LEFT('$(vYearQuarterCursor)',4);&lt;BR /&gt; TRACE vDateMax=$(vDateMax);&lt;BR /&gt;&lt;BR /&gt; // Set conditions for creating a QVD pair.&lt;BR /&gt; IF ($(vYearQuarterCursor) = $(vCurrentYearQuarter)) OR (ISNULL(QVDCREATETIME('QVD\$(vDB)\$(vVers)GrpAggSalesForecastComp_$(vYearQuarterCursor).qvd'))) OR (ISNULL(QVDCREATETIME('QVD\$(vDB)\$(vVers)SalesHistory_$(vYearQuarterCursor).qvd'))) THEN&lt;BR /&gt;&lt;BR /&gt; //Must load aggsales and forecast together as they will be compared against each other.&lt;BR /&gt; //AggregatedSales Forecast JOINS&lt;BR /&gt; //AggregateSalesHistory:&lt;BR /&gt; AggSalesForecastCompTemp:&lt;BR /&gt; LOAD //HASH128(PriceZoneSID &amp;amp; ProdOrAggSID &amp;amp; Date(Date)) AS %_ZoneEntityDate,&lt;BR /&gt; (PriceZoneSID &amp;amp; ProdOrAggSID &amp;amp; Date(Date)) AS %_ZoneEntityDate,&lt;BR /&gt; Date(Date) AS Date,&lt;BR /&gt; PriceZoneSID,&lt;BR /&gt; ProdOrAggSID,&lt;BR /&gt; ProdOrAggSID AS EntitySID,&lt;BR /&gt; Sales,&lt;BR /&gt; Cost,&lt;BR /&gt; Price,&lt;BR /&gt; profit;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo."v_AggregatedSalesHistoryProfit"&lt;BR /&gt; WHERE PriceZoneSID NOT IN ('05F65C7D-1234-5678-0002-000000000000','E14C6B32-F1E1-43AF-8813-A951D1BA9E53')&lt;BR /&gt; //AND SegmentID = 0&lt;BR /&gt; AND Date &amp;gt;= convert(datetime,'$(vDateMin)',0) AND Date &amp;lt;= convert(datetime,'$(vDateMax)',0);&lt;BR /&gt;&lt;BR /&gt; AggSalesForecastComp:&lt;BR /&gt; LOAD %_ZoneEntityDate,&lt;BR /&gt; Date,&lt;BR /&gt; PriceZoneSID,&lt;BR /&gt; ProdOrAggSID,&lt;BR /&gt; EntitySID,&lt;BR /&gt; SUM(Sales) AS AggSalesUnits,&lt;BR /&gt; SUM(Cost * Sales) AS AggSalesCost,&lt;BR /&gt; SUM(Price * Sales) AS AggSalesRevenue,&lt;BR /&gt; SUM(profit) AS AggSalesProfit&lt;BR /&gt; RESIDENT AggSalesForecastCompTemp&lt;BR /&gt; GROUP BY %_ZoneEntityDate, Date, PriceZoneSID, ProdOrAggSID, EntitySID;&lt;BR /&gt; DROP TABLE AggSalesForecastCompTemp;&lt;BR /&gt;&lt;BR /&gt; //ForcastProductScenario&lt;BR /&gt; ForecastProductScenarioTemp:&lt;BR /&gt; LOAD DATE(ForecastDate) AS Date,&lt;BR /&gt; ProductSID AS ProdOrAggSID,&lt;BR /&gt; ZoneSID AS PriceZoneSID,&lt;BR /&gt; CashSales,&lt;BR /&gt; UnitSales,&lt;BR /&gt; Profit;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.ForecastProductScenario&lt;BR /&gt; WHERE ZoneSID NOT IN ('05F65C7D-1234-5678-0002-000000000000','E14C6B32-F1E1-43AF-8813-A951D1BA9E53')&lt;BR /&gt; //AND SegmentID = 0&lt;BR /&gt; AND ForecastDate &amp;gt;= convert(datetime,'$(vDateMin)',0) AND ForecastDate &amp;lt;= convert(datetime,'$(vDateMax)',0);&lt;BR /&gt;&lt;BR /&gt; JOIN (AggSalesForecastComp)&lt;BR /&gt; LOAD Date,&lt;BR /&gt; ProdOrAggSID,&lt;BR /&gt; PriceZoneSID,&lt;BR /&gt; SUM(CashSales) AS ForecastSalesRevenue,&lt;BR /&gt; SUM(UnitSales) AS ForecastUnits,&lt;BR /&gt; SUM(Profit) AS ForecastProfit&lt;BR /&gt; RESIDENT ForecastProductScenarioTemp&lt;BR /&gt; GROUP BY Date, ProdOrAggSID, PriceZoneSID;&lt;BR /&gt; DROP TABLE ForecastProductScenarioTemp;&lt;BR /&gt;&lt;BR /&gt; //GroupAggregateSalesHistory JOINS&lt;BR /&gt; //GrpAggSales&lt;BR /&gt; GrpAggSalesForecastCompTemp:&lt;BR /&gt; LOAD //HASH128(ZoneSID &amp;amp; EntitySID &amp;amp; Date(Date)) AS %_ZoneEntityDate,&lt;BR /&gt; (ZoneSID &amp;amp; EntitySID &amp;amp; Date(Date)) AS %_ZoneEntityDate,&lt;BR /&gt; Date(Date) AS Date,&lt;BR /&gt; //ZoneSID AS PriceZoneSID,&lt;BR /&gt; //EntitySID AS EntitySID,&lt;BR /&gt; Price,&lt;BR /&gt; Sales;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.GroupAggregatedSalesHistory&lt;BR /&gt; WHERE ZoneSID NOT IN ('05F65C7D-1234-5678-0002-000000000000','E14C6B32-F1E1-43AF-8813-A951D1BA9E53')&lt;BR /&gt; //AND SegmentID = 0&lt;BR /&gt; AND Date &amp;gt;= convert(datetime,'$(vDateMin)',0) AND Date &amp;lt;= convert(datetime,'$(vDateMax)',0);&lt;BR /&gt;&lt;BR /&gt; GrpAggSalesForecastComp:&lt;BR /&gt; LOAD %_ZoneEntityDate,&lt;BR /&gt; Date,&lt;BR /&gt; //ZoneSID AS PriceZoneSID,&lt;BR /&gt; //EntitySID AS EntitySID,&lt;BR /&gt; SUM(Price * Sales) AS GrpAggSalesRevenue&lt;BR /&gt; RESIDENT GrpAggSalesForecastCompTemp&lt;BR /&gt; GROUP BY Date, %_ZoneEntityDate;&lt;BR /&gt; DROP TABLE GrpAggSalesForecastCompTemp;&lt;BR /&gt;&lt;BR /&gt; //ForecastGroupScenario&lt;BR /&gt; ForecastGroupScenarioTemp:&lt;BR /&gt; LOAD //HASH128(ZoneSID &amp;amp; EntitySID &amp;amp; Date(ForeCastDate)) AS %_ZoneEntityDate,&lt;BR /&gt; (ZoneSID &amp;amp; EntitySID &amp;amp; Date(ForeCastDate)) AS %_ZoneEntityDate,&lt;BR /&gt; DATE(ForeCastDate) AS Date,&lt;BR /&gt; ZoneSID AS PriceZoneSID,&lt;BR /&gt; EntitySID,&lt;BR /&gt; CashSales,&lt;BR /&gt; UnitSales,&lt;BR /&gt; Profit;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.ForecastGroupScenario&lt;BR /&gt; WHERE ZoneSID NOT IN ('05F65C7D-1234-5678-0002-000000000000','E14C6B32-F1E1-43AF-8813-A951D1BA9E53')&lt;BR /&gt; //AND SegmentID = 0&lt;BR /&gt; AND ForeCastDate &amp;gt;= convert(datetime,'$(vDateMin)',0) AND ForeCastDate &amp;lt;= convert(datetime,'$(vDateMax)',0);&lt;BR /&gt;&lt;BR /&gt; //ForecastGroupScenario&lt;BR /&gt; JOIN (GrpAggSalesForecastComp)&lt;BR /&gt; LOAD %_ZoneEntityDate,&lt;BR /&gt; Date,&lt;BR /&gt; PriceZoneSID,&lt;BR /&gt; EntitySID,&lt;BR /&gt; SUM(CashSales) AS ForecastGrpSalesRevenue,&lt;BR /&gt; SUM(UnitSales) AS ForecastGrpUnits,&lt;BR /&gt; SUM(Profit) AS ForecastGrpProfit&lt;BR /&gt; RESIDENT ForecastGroupScenarioTemp&lt;BR /&gt; GROUP BY %_ZoneEntityDate, EntitySID, PriceZoneSID, Date;&lt;BR /&gt; DROP TABLE ForecastGroupScenarioTemp;&lt;BR /&gt;&lt;BR /&gt; STORE GrpAggSalesForecastComp INTO QVD\$(vDB)\$(vVers)GrpAggSalesForecastComp_$(vYearQuarterCursor).qvd;&lt;BR /&gt; DROP TABLE GrpAggSalesForecastComp;&lt;BR /&gt;&lt;BR /&gt; // Load Sales History&lt;BR /&gt; ProductTemp:&lt;BR /&gt; LOAD ProductID,&lt;BR /&gt; ProductSID;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.Product;&lt;BR /&gt;&lt;BR /&gt; SalesHistoryTemp:&lt;BR /&gt; LOAD Date(SaleDate) AS Date,&lt;BR /&gt; OutletID,&lt;BR /&gt; ProductID,&lt;BR /&gt; Cost,&lt;BR /&gt; Price,&lt;BR /&gt; Sales;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.SalesHistory&lt;BR /&gt; WHERE SaleDate &amp;gt;= convert(datetime,'$(vDateMin)',0) AND SaleDate &amp;lt;= convert(datetime,'$(vDateMax)',0);&lt;BR /&gt;&lt;BR /&gt; SalesHistoryTemp2:&lt;BR /&gt; LOAD Date,&lt;BR /&gt; OutletID,&lt;BR /&gt; ProductID,&lt;BR /&gt; //Start_Update_10/15&lt;BR /&gt; MAX(Price) AS PriceDetail,&lt;BR /&gt; MAX(Cost) AS CostDetail,&lt;BR /&gt; //End_Update_10/15&lt;BR /&gt; SUM(Sales) AS SalesUnits,&lt;BR /&gt; SUM(Cost * Sales) AS SalesCost,&lt;BR /&gt; SUM(Price * Sales) AS SalesRevenue,&lt;BR /&gt; SUM(Price * Sales) - SUM(Cost * Sales) AS SalesProfit&lt;BR /&gt; RESIDENT SalesHistoryTemp&lt;BR /&gt; GROUP BY Date, OutletID, ProductID;&lt;BR /&gt; DROP TABLE SalesHistoryTemp;&lt;BR /&gt;&lt;BR /&gt; //Create list of zones and stores so we can add the zone into the sales history detail by outlet&lt;BR /&gt; TempOutlet:&lt;BR /&gt; LOAD PriceZoneSID,&lt;BR /&gt; Name AS PriceZone;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.PriceZone&lt;BR /&gt; WHERE ClientPriceZoneID &amp;lt;&amp;gt; 'GLOBAL';&lt;BR /&gt;&lt;BR /&gt; LEFT JOIN (TempOutlet)&lt;BR /&gt; LOAD PriceZoneSID,&lt;BR /&gt; OutletSID;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.PriceZoneOutlet;&lt;BR /&gt;&lt;BR /&gt; // Add stores (Outlets)&lt;BR /&gt; LEFT JOIN (TempOutlet)&lt;BR /&gt; LOAD&lt;BR /&gt; OutletSID,&lt;BR /&gt; OutletID;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.Outlet;&lt;BR /&gt;&lt;BR /&gt; //Join the PriceZoneSID back into Sales History&lt;BR /&gt; LEFT JOIN (SalesHistoryTemp2)&lt;BR /&gt; LOAD OutletID,&lt;BR /&gt; PriceZoneSID&lt;BR /&gt; RESIDENT TempOutlet;&lt;BR /&gt; DROP TABLE TempOutlet;&lt;BR /&gt;&lt;BR /&gt; LEFT JOIN (SalesHistoryTemp2)&lt;BR /&gt; LOAD ProductID,&lt;BR /&gt; ProductSID AS ProdOrAggSID,&lt;BR /&gt; ProductSID AS EntitySID&lt;BR /&gt; RESIDENT ProductTemp;&lt;BR /&gt; DROP TABLE ProductTemp;&lt;BR /&gt;&lt;BR /&gt; //Start_Update_10/15&lt;BR /&gt; // ForecastProductScenario joining to SalesHistory detail ONLY for detail price/cost counting&lt;BR /&gt; LEFT JOIN (SalesHistoryTemp2)&lt;BR /&gt; LOAD DATE(ForecastDate) AS Date,&lt;BR /&gt; ProductSID AS ProdOrAggSID,&lt;BR /&gt; ZoneSID AS PriceZoneSID,&lt;BR /&gt; Price AS ForecastPrice,&lt;BR /&gt; Cost AS ForecastCost,&lt;BR /&gt; 1 AS ForecastFlag;&lt;BR /&gt; SQL SELECT *&lt;BR /&gt; FROM $(vDB).dbo.ForecastProductScenario&lt;BR /&gt; WHERE ZoneSID NOT IN ('05F65C7D-1234-5678-0002-000000000000','E14C6B32-F1E1-43AF-8813-A951D1BA9E53')&lt;BR /&gt; //AND SegmentID = 0&lt;BR /&gt; AND ForecastDate &amp;gt;= convert(datetime,'$(vDateMin)',0) AND ForecastDate &amp;lt;= convert(datetime,'$(vDateMax)',0);&lt;BR /&gt;&lt;BR /&gt; // Now compare Forecast Price to PriceDetail and cost fields to come up with matches and non-matches&lt;BR /&gt; SalesHistory:&lt;BR /&gt; LOAD Date,&lt;BR /&gt; OutletID,&lt;BR /&gt; ProductID,&lt;BR /&gt; //PriceDetail,&lt;BR /&gt; //CostDetail,&lt;BR /&gt; SalesUnits,&lt;BR /&gt; SalesCost,&lt;BR /&gt; SalesRevenue,&lt;BR /&gt; SalesProfit,&lt;BR /&gt; ProdOrAggSID,&lt;BR /&gt; PriceZoneSID,&lt;BR /&gt; //ForecastPrice,&lt;BR /&gt; //ForecastCost,&lt;BR /&gt; //will compare against sum of forecast flag for non-weighted complaince&lt;BR /&gt; IF(ForecastPrice=PriceDetail,1,0) AS SamePrice,&lt;BR /&gt; IF(ForecastCost=CostDetail,1,0) AS SameCost,&lt;BR /&gt; //will compare against sum of forecastunitsflag for weighted complaince&lt;BR /&gt; IF(ForecastPrice=PriceDetail,SalesUnits,0) AS WeightedPrice,&lt;BR /&gt; IF(ForecastCost=CostDetail,SalesUnits,0) AS WeightedCost,&lt;BR /&gt; ForecastFlag,&lt;BR /&gt; IF(ForecastFlag=1,SalesUnits) AS ForecastUnitsFlag,&lt;BR /&gt; EntitySID&lt;BR /&gt; RESIDENT SalesHistoryTemp2;&lt;BR /&gt; DROP TABLE SalesHistoryTemp2;&lt;BR /&gt;&lt;BR /&gt; //End_Update_10/15&lt;BR /&gt;&lt;BR /&gt; //Load AggSalesAndForecast back in&lt;BR /&gt; CONCATENATE (SalesHistory)&lt;BR /&gt; LOAD %_ZoneEntityDate,&lt;BR /&gt; Date,&lt;BR /&gt; PriceZoneSID,&lt;BR /&gt; ProdOrAggSID,&lt;BR /&gt; EntitySID,&lt;BR /&gt; AggSalesUnits,&lt;BR /&gt; AggSalesCost,&lt;BR /&gt; AggSalesRevenue,&lt;BR /&gt; AggSalesProfit,&lt;BR /&gt; ForecastSalesRevenue,&lt;BR /&gt; ForecastUnits,&lt;BR /&gt; ForecastProfit&lt;BR /&gt; RESIDENT AggSalesForecastComp;&lt;BR /&gt; DROP TABLE AggSalesForecastComp;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt; //Load PriceChanges&lt;BR /&gt; CONCATENATE (SalesHistory)&lt;BR /&gt; LOAD PriceZoneSID,&lt;BR /&gt; ProdOrAggSID,&lt;BR /&gt; Date,&lt;BR /&gt; PriceChange&lt;BR /&gt; FROM QVD\$(vDB)\$(vVers)PriceChange.qvd&lt;BR /&gt; (qvd)&lt;BR /&gt; WHERE Date &amp;gt;= $(vDateMin) AND Date &amp;lt;= $(vDateMax);&lt;BR /&gt;&lt;BR /&gt; STORE SalesHistory INTO QVD\$(vDB)\$(vVers)SalesHistory_$(vYearQuarterCursor).qvd;&lt;BR /&gt;&lt;BR /&gt; LET vRecords = NoOfRows('SalesHistory');&lt;BR /&gt; DROP TABLE SalesHistory;&lt;BR /&gt;&lt;BR /&gt; LET vEndTime = NOW();&lt;BR /&gt; JOIN (Statistics)&lt;BR /&gt; // Change the name of the table here:&lt;BR /&gt; LOAD DISTINCT 'SalesHistory_'&amp;amp;'$(vYearQuarterCursor)' AS TableName,&lt;BR /&gt; '$(vStartTime)' AS StartTime,&lt;BR /&gt; '$(vEndTime)' AS EndTime,&lt;BR /&gt; INTERVAL(NUM('$(vEndTime)') - NUM('$(vStartTime)'),'hh:mm:ss') AS Duration,&lt;BR /&gt; $(vRecords) AS Records&lt;BR /&gt; RESIDENT Statistics;&lt;BR /&gt;&lt;BR /&gt; ELSE&lt;BR /&gt; END IF&lt;BR /&gt;&lt;BR /&gt;NEXT&lt;BR /&gt;&lt;BR /&gt;DROP TABLE TempYearQuarter;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Feb 2011 22:10:11 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220902#M73759</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2011-02-17T22:10:11Z</dc:date>
    </item>
    <item>
      <title>FOR NEXT problem Incremental Load</title>
      <link>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220903#M73760</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Before the end of the For next, try saving the QVD files in a temporary directory.&lt;/P&gt;&lt;P&gt;It´s work for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE style="overflow-x: scroll;"&gt;&lt;PRE style="margin: 0px;"&gt;&lt;BR /&gt;//LE TODOS CUBOS DA TABELA TEMPORARIA&lt;BR /&gt;TMP_CONFIGURACAO_CUBO:&lt;BR /&gt;LOAD DISTINCT&lt;BR /&gt;AL4_CODIGO&lt;BR /&gt;FROM TMP\TMP_CONFIGURACAO_CUBO.QVD (qvd);&lt;BR /&gt;&lt;BR /&gt;//LACO PARA PEGAR OS DADOS DE CADA CUBO&lt;BR /&gt;FOR I=1 TO fieldValueCount('AL4_CODIGO')&lt;BR /&gt;LET CODIGO = TRIM(fieldvalue('AL4_CODIGO',$(I)));&lt;BR /&gt;TRACE Carregando agora $(CODIGO);&lt;BR /&gt;/BUSCA AS RESTRICOES DE CADA CUBO&lt;BR /&gt;TMP_DADOS_$(CODIGO):&lt;BR /&gt;LOAD DISTINCT&lt;BR /&gt;AL4_CODIGO,&lt;BR /&gt;AL4_FILTER,&lt;BR /&gt;AL4_EXPRIN,&lt;BR /&gt;AL4_EXPRFI&lt;BR /&gt;FROM TMP\TMP_CONFIGURACAO_CUBO.QVD (qvd)&lt;BR /&gt;WHERE AL4_CODIGO = '$(CODIGO)';&lt;BR /&gt;&lt;BR /&gt;LET FILTRO = TRIM(fieldvalue('AL4_FILTER',1));&lt;BR /&gt;LET INICIO = TRIM(fieldvalue('AL4_EXPRIN',1));&lt;BR /&gt;LET FINAL = TRIM(fieldvalue('AL4_EXPRFI',1));&lt;BR /&gt;&lt;BR /&gt; //SE O CUBO POSSUI FILTRO USAR, CASO CONTRARIO USAR UR INICIAL E UR FINAL&lt;BR /&gt; IF IsNull(TRIM(fieldvalue('AL4_FILTER',1))) OR LEN(TRIM(fieldvalue('AL4_FILTER',1))) &amp;lt; 5 THEN&lt;BR /&gt; SET FILTRO = TRIM(AK5_CODIGO) &amp;gt;= '$(INICIO)' AND TRIM(AK5_CODIGO)&amp;lt;= '$(FINAL)';&lt;BR /&gt;END IF&lt;BR /&gt;//BUSCAR AS URS COM TAMANHO DE 12 CARACTERES POR CUBO&lt;BR /&gt;TMP_FILTRO_POR_UR_$(CODIGO):&lt;BR /&gt;LOAD&lt;BR /&gt; CODIGO AS [Código cubo],&lt;BR /&gt; "AK5_CODIGO" AS [Código unidade resultado];&lt;BR /&gt; SQL SELECT AK5_CODIGO,&lt;BR /&gt; '$(CODIGO)' AS CODIGO&lt;BR /&gt; FROM SA_SIGA.AK5900&lt;BR /&gt;WHERE&lt;BR /&gt;($(FILTRO)) AND&lt;BR /&gt;LENGTH(TRIM(AK5_CODIGO)) = 12 AND&lt;BR /&gt; AK5_MSBLQL = 2 AND&lt;BR /&gt; D_E_L_E_T_ = ' '&lt;BR /&gt;ORDER BY "AK5_CODIGO";&lt;BR /&gt;&lt;BR /&gt; //GRAVA DADOS TEMPORARIOS&lt;BR /&gt; STORE TMP_FILTRO_POR_UR_$(CODIGO) INTO TMP\TMP_FILTRO_POR_UR_$(CODIGO).QVD;&lt;BR /&gt;&lt;BR /&gt;DROP TABLE TMP_DADOS_$(CODIGO);&lt;BR /&gt;DROP TABLE TMP_FILTRO_POR_UR_$(CODIGO);&lt;BR /&gt;&lt;BR /&gt;LET CODIGO = Null();&lt;BR /&gt;LET FILTRO = Null();&lt;BR /&gt;LET INICIO = Null();&lt;BR /&gt;LET FINAL = Null();&lt;BR /&gt;NEXT&lt;BR /&gt;&lt;BR /&gt;DROP TABLE TMP_CONFIGURACAO_CUBO;&lt;BR /&gt;&lt;BR /&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;BR /&gt;&lt;BR /&gt;//BUSCA TODOS CUBOS COM SUAS RESPECTIVAR URS&lt;BR /&gt;ACESSO_UR_CUBO:&lt;BR /&gt;LOAD * FROM TMP\TMP_FILTRO_POR_UR_*.QVD (qvd);&lt;BR /&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 00:42:03 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220903#M73760</guid>
      <dc:creator />
      <dc:date>2011-02-18T00:42:03Z</dc:date>
    </item>
    <item>
      <title>FOR NEXT problem Incremental Load</title>
      <link>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220904#M73761</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I commented everything between IF and ELSE and then uncommented a section at a time. I found the culprit. For some reason, it wanted me to completely drop any tables that would accessed again.&lt;/P&gt;&lt;P&gt;Thanks for assist.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 01:52:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220904#M73761</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2011-02-18T01:52:04Z</dc:date>
    </item>
    <item>
      <title>FOR NEXT problem Incremental Load</title>
      <link>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220905#M73762</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Aaron,&lt;/P&gt;&lt;P&gt;I think your problem was forgetting to quote the tablename in the peek() function. See&lt;BR /&gt;&lt;A href="http://community.qlik.com/wikis/qlikview-wiki/forgetting-quotes-in-peek.aspx"&gt;http://community.qlik.com/wikis/qlikview-wiki/forgetting-quotes-in-peek.aspx&lt;/A&gt;&lt;/P&gt;&lt;P&gt;for an explanation of why it worked the forst time and not subsequently (current table change). By dropping the new table, you made TempYearQuater the current table again. But I think you can fix it by just adding the quotes.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 03:47:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/FOR-NEXT-problem-Incremental-Load/m-p/220905#M73762</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2011-02-18T03:47:47Z</dc:date>
    </item>
  </channel>
</rss>

