<?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 Re: Fill in missing observations (if proc timeseries is not an option) in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152676#M30054</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. I couldn't have done the iterator without help. And (delayed) thanks Xia Keshan for "hash aggregating strings"!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Feb 2015 12:37:31 GMT</pubDate>
    <dc:creator>user24feb</dc:creator>
    <dc:date>2015-02-04T12:37:31Z</dc:date>
    <item>
      <title>Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152671#M30049</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have to create a dataset that shows an individual line for every combination of ID-variables (the character variables in the example below) even if there is a zero value for this record. This is it is, my problem is a bit like filling in missing observations using proc timeseries - but without time variables; searched the community for a while, but I always found something linked to timeseries. My actual data set "have" is large, which is why I would like to optimize the following code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I mistrust the point statements I am using. My question is, could it be faster?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data Have;&lt;BR /&gt;&amp;nbsp; Input HPG $ Plant $ Material $ X;&lt;BR /&gt;&amp;nbsp; Datalines;&lt;BR /&gt;FA&amp;nbsp; 0004 200 4&lt;BR /&gt;FB&amp;nbsp; 0004 209 5&lt;BR /&gt;MGG 0001 201 6&lt;BR /&gt;MGU 0001 203 8&lt;BR /&gt;MGG 0002 203 8&lt;BR /&gt;MGG 0004 210 1&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;Proc SQL NoPrint;&lt;BR /&gt;&amp;nbsp; Select Count(Distinct HPG) As N_HPG, Count(Distinct Plant) As N_Plant, Count (Distinct Material) As N_Material Into :N_HPG, :N_Plant, :N_Material From A;&lt;BR /&gt;&amp;nbsp; Create Table HPG As Select Distinct HPG From A;&lt;BR /&gt;&amp;nbsp; Create Table Plant As Select Distinct Plant From A;&lt;BR /&gt;&amp;nbsp; Create Table Material As Select Distinct Material From A;&lt;BR /&gt;Quit;&lt;BR /&gt;%Put **&amp;amp;N_HPG.**&amp;amp;N_Plant.**&amp;amp;N_Material.**;&lt;/P&gt;&lt;P&gt;Data Want (Drop=rc);&lt;BR /&gt;&amp;nbsp; Declare Hash H ();&lt;BR /&gt;&amp;nbsp; H.Definekey('HPG','Plant','Material');&lt;BR /&gt;&amp;nbsp; H.Definedata('X');&lt;BR /&gt;&amp;nbsp; H.Definedone();&lt;BR /&gt;&amp;nbsp; Do Until (Eof_H);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Have End=Eof_H;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H.Add();&lt;BR /&gt;&amp;nbsp; End;&lt;BR /&gt;&amp;nbsp; * critical part, beginning - I think;&lt;BR /&gt;&amp;nbsp; Do i=1 To &amp;amp;N_HPG.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set HPG Point=i;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do j=1 To &amp;amp;N_Plant.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Set Plant Point=j;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Do k=1 To &amp;amp;N_Material.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Material Point=k;&lt;BR /&gt;&amp;nbsp; rc=H.Find();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If rc ne 0 Then X=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; End; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End;&lt;BR /&gt;&amp;nbsp; End;&lt;BR /&gt;&amp;nbsp; * critical part, end;&lt;BR /&gt;&amp;nbsp; Stop;&lt;BR /&gt;Run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;amp;kind regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 09:04:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152671#M30049</guid>
      <dc:creator>user24feb</dc:creator>
      <dc:date>2015-02-04T09:04:41Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152672#M30050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I don’t see any problem with the set point= method. It causes performance problems only if data step needs to re-load different pages (blocks) of the input SAS dataset from the disk all the time. You can prevent this if you allocate enough memory. For example:&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;set HPG(&lt;/SPAN&gt;&lt;STRONG style="color: blue; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;bufno&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;100&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;) Point=i;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the other hand your full program reads the data 5 times. 3 times to generate distinct values of the 3 columns. You could use 3 additional hash objects to store only those distinct values, then you could iterate through them. In this case instead of “do i=1 to &amp;amp;N; set point=” you will use “do unti(hashiterator.next());” Only one pass through the data is needed then.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you already run your program on your full dataset? You are reading the full dataset into memory (hash object). If data is really big that could cause problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Gergely&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 10:34:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152672#M30050</guid>
      <dc:creator>gergely_batho</dc:creator>
      <dc:date>2015-02-04T10:34:29Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152673#M30051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What does your output look like ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 11:10:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152673#M30051</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-02-04T11:10:36Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152674#M30052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My file-upload seems to be stuck, hope this is o.k. for you. The output the code above creates would be right:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HPG;Plant;Material;X&lt;/P&gt;&lt;P&gt;FA;0001;200;0&lt;/P&gt;&lt;P&gt;FA;0001;201;0&lt;/P&gt;&lt;P&gt;FA;0001;203;0&lt;/P&gt;&lt;P&gt;FA;0001;209;0&lt;/P&gt;&lt;P&gt;FA;0001;210;0&lt;/P&gt;&lt;P&gt;FA;0002;200;0&lt;/P&gt;&lt;P&gt;FA;0002;201;0&lt;/P&gt;&lt;P&gt;FA;0002;203;0&lt;/P&gt;&lt;P&gt;FA;0002;209;0&lt;/P&gt;&lt;P&gt;FA;0002;210;0&lt;/P&gt;&lt;P&gt;FA;0004;200;4&lt;/P&gt;&lt;P&gt;FA;0004;201;0&lt;/P&gt;&lt;P&gt;FA;0004;203;0&lt;/P&gt;&lt;P&gt;FA;0004;209;0&lt;/P&gt;&lt;P&gt;FA;0004;210;0&lt;/P&gt;&lt;P&gt;FB;0001;200;0&lt;/P&gt;&lt;P&gt;FB;0001;201;0&lt;/P&gt;&lt;P&gt;FB;0001;203;0&lt;/P&gt;&lt;P&gt;FB;0001;209;0&lt;/P&gt;&lt;P&gt;FB;0001;210;0&lt;/P&gt;&lt;P&gt;FB;0002;200;0&lt;/P&gt;&lt;P&gt;FB;0002;201;0&lt;/P&gt;&lt;P&gt;FB;0002;203;0&lt;/P&gt;&lt;P&gt;FB;0002;209;0&lt;/P&gt;&lt;P&gt;FB;0002;210;0&lt;/P&gt;&lt;P&gt;FB;0004;200;0&lt;/P&gt;&lt;P&gt;FB;0004;201;0&lt;/P&gt;&lt;P&gt;FB;0004;203;0&lt;/P&gt;&lt;P&gt;FB;0004;209;5&lt;/P&gt;&lt;P&gt;FB;0004;210;0&lt;/P&gt;&lt;P&gt;MGG;0001;200;0&lt;/P&gt;&lt;P&gt;MGG;0001;201;6&lt;/P&gt;&lt;P&gt;MGG;0001;203;0&lt;/P&gt;&lt;P&gt;MGG;0001;209;0&lt;/P&gt;&lt;P&gt;MGG;0001;210;0&lt;/P&gt;&lt;P&gt;MGG;0002;200;0&lt;/P&gt;&lt;P&gt;MGG;0002;201;0&lt;/P&gt;&lt;P&gt;MGG;0002;203;8&lt;/P&gt;&lt;P&gt;MGG;0002;209;0&lt;/P&gt;&lt;P&gt;MGG;0002;210;0&lt;/P&gt;&lt;P&gt;MGG;0004;200;0&lt;/P&gt;&lt;P&gt;MGG;0004;201;0&lt;/P&gt;&lt;P&gt;MGG;0004;203;0&lt;/P&gt;&lt;P&gt;MGG;0004;209;0&lt;/P&gt;&lt;P&gt;MGG;0004;210;1&lt;/P&gt;&lt;P&gt;MGU;0001;200;0&lt;/P&gt;&lt;P&gt;MGU;0001;201;0&lt;/P&gt;&lt;P&gt;MGU;0001;203;8&lt;/P&gt;&lt;P&gt;MGU;0001;209;0&lt;/P&gt;&lt;P&gt;MGU;0001;210;0&lt;/P&gt;&lt;P&gt;MGU;0002;200;0&lt;/P&gt;&lt;P&gt;MGU;0002;201;0&lt;/P&gt;&lt;P&gt;MGU;0002;203;0&lt;/P&gt;&lt;P&gt;MGU;0002;209;0&lt;/P&gt;&lt;P&gt;MGU;0002;210;0&lt;/P&gt;&lt;P&gt;MGU;0004;200;0&lt;/P&gt;&lt;P&gt;MGU;0004;201;0&lt;/P&gt;&lt;P&gt;MGU;0004;203;0&lt;/P&gt;&lt;P&gt;MGU;0004;209;0&lt;/P&gt;&lt;P&gt;MGU;0004;210;0&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 12:01:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152674#M30052</guid>
      <dc:creator>user24feb</dc:creator>
      <dc:date>2015-02-04T12:01:03Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152675#M30053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I assume that the 3 variables give uniqueness to the observation. Otherewise , MULTIDATA option can be used. Because You have large dataset use od hashexp:20 will be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if _n_ = 1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h(hashexp:20);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definekey('HPG','Plant','Material');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definedata('HPG','Plant','Material','X');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definedone();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hH(ordered:'a');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hH.definekey('HPG');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hH.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hP(ordered:'a');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hP.definekey('Plant');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hP.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hM(ordered:'a');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hM.definekey('Material');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hM.definedone();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(eof);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have end = eof;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hH.find() ^= 0 then hH.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hP.find() ^= 0 then hP.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hM.find() ^= 0 then hM.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hiH('hH');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hiP('hP');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hiM('hM');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(hiH.next() = 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(hiP.next() = 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(hiM.next() = 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if h.find() ^= 0 then X = 0;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;stop;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data = want;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; HPG&amp;nbsp;&amp;nbsp;&amp;nbsp; Plant&amp;nbsp;&amp;nbsp;&amp;nbsp; Material&amp;nbsp;&amp;nbsp;&amp;nbsp; X&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/P&gt;&lt;P&gt;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 13&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp; FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 17&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 18&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 19&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 21&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 22&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 23&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 24&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 25&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 26&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 27&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 28&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 29&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 31&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 32&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;&amp;nbsp; 33&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 34&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 36&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 37&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 38&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/P&gt;&lt;P&gt;&amp;nbsp; 39&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 41&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 42&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 43&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 44&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 45&amp;nbsp;&amp;nbsp;&amp;nbsp; MGG&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 46&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 47&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 48&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/P&gt;&lt;P&gt;&amp;nbsp; 49&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 51&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 52&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 53&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 54&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 55&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 56&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 57&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 58&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 60&amp;nbsp;&amp;nbsp;&amp;nbsp; MGU&amp;nbsp;&amp;nbsp;&amp;nbsp; 0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 12:16:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152675#M30053</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2015-02-04T12:16:19Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152676#M30054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. I couldn't have done the iterator without help. And (delayed) thanks Xia Keshan for "hash aggregating strings"!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 12:37:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152676#M30054</guid>
      <dc:creator>user24feb</dc:creator>
      <dc:date>2015-02-04T12:37:31Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152677#M30055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ou, This is best for SQL's Cartesian Product , No need for Hash Table such advanced skill.&lt;/P&gt;&lt;P&gt;And I believe Hash Table is not faster than SQL .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;
Data Have;
&amp;nbsp; Input HPG $ Plant $ Material $ X;
&amp;nbsp; Datalines;
FA&amp;nbsp; 0004 200 4
FB&amp;nbsp; 0004 209 5
MGG 0001 201 6
MGU 0001 203 8
MGG 0002 203 8
MGG 0004 210 1
;
run;
proc sql;
create table want as
 select a.*,coalesce(b.x,0) as x
&amp;nbsp; from 
&amp;nbsp; (select * from (select distinct HPG from have),(select distinct Plant from have),(select distinct Material from have)) as a
&amp;nbsp; left join
&amp;nbsp; have as b
&amp;nbsp; on a.HPG=b.HPG and a.Plant=b.Plant and a.Material=b.Material ;
quit;



&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Feb 2015 07:22:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152677#M30055</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-02-05T07:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: Fill in missing observations (if proc timeseries is not an option)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152678#M30056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;On further thought, the 3 Key Variables are coming from the Iterator Objects and hence, there is no need to place them in the data-part of the Hash Table(H).&amp;nbsp; The following statement,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;h.definedata('HPG','Plant','Material','X');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can be replaced with:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;h.definedata('X');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;For your benefit, I have just commented the previous statement in the code I posted yesterday.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan believes that his SQL solution can be faster than Hash solution.&amp;nbsp; I do not find evidence to his belief and instead, the&amp;nbsp; Hash solution runs AT LEAST 3 times faster than SQL besides Hash taking lesser memory. However, I concur with him that some expertise to use Hash is a must.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the proof.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let us create a simulated data set, HAVE and run both CODES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options fullstimer;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do j = 1 to 200;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i1 = 64 + ceil(ranuni(123) * 26);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2 = 64 + ceil(ranuni(123) * 26);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i3 = 64 + ceil(ranuni(123) * 26);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HPG = catt(byte(i1), byte(i2), byte(i3));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Plant = put(ceil(ranuni(123) * 1000), z4.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Material = put(ceil(ranuni(123) * 999), z3.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X = ceil(ranuni(123) * 100);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;keep HPG Plant Material X;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;371&amp;nbsp; data want;&lt;/P&gt;&lt;P&gt;372&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_ = 1 then do;&lt;/P&gt;&lt;P&gt;373&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then set have;&lt;/P&gt;&lt;P&gt;374&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h(hashexp:20);&lt;/P&gt;&lt;P&gt;375&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definekey('HPG','Plant','Material');&lt;/P&gt;&lt;P&gt;376&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *h.definedata('HPG','Plant','Material','X');&lt;/P&gt;&lt;P&gt;377&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definedata('X');&lt;/P&gt;&lt;P&gt;378&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definedone();&lt;/P&gt;&lt;P&gt;379&lt;/P&gt;&lt;P&gt;380&lt;/P&gt;&lt;P&gt;381&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hH(ordered:'a');&lt;/P&gt;&lt;P&gt;382&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hH.definekey('HPG');&lt;/P&gt;&lt;P&gt;383&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hH.definedone();&lt;/P&gt;&lt;P&gt;384&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hP(ordered:'a');&lt;/P&gt;&lt;P&gt;385&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hP.definekey('Plant');&lt;/P&gt;&lt;P&gt;386&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hP.definedone();&lt;/P&gt;&lt;P&gt;387&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hM(ordered:'a');&lt;/P&gt;&lt;P&gt;388&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hM.definekey('Material');&lt;/P&gt;&lt;P&gt;389&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hM.definedone();&lt;/P&gt;&lt;P&gt;390&lt;/P&gt;&lt;P&gt;391&lt;/P&gt;&lt;P&gt;392&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(eof);&lt;/P&gt;&lt;P&gt;393&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have end = eof;&lt;/P&gt;&lt;P&gt;394&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hH.find() ^= 0 then hH.add();&lt;/P&gt;&lt;P&gt;395&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hP.find() ^= 0 then hP.add();&lt;/P&gt;&lt;P&gt;396&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hM.find() ^= 0 then hM.add();&lt;/P&gt;&lt;P&gt;397&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.add();&lt;/P&gt;&lt;P&gt;398&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;399&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hiH('hH');&lt;/P&gt;&lt;P&gt;401&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hiP('hP');&lt;/P&gt;&lt;P&gt;402&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hiM('hM');&lt;/P&gt;&lt;P&gt;403&lt;/P&gt;&lt;P&gt;404&lt;/P&gt;&lt;P&gt;405&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(hiH.next() = 0);&lt;/P&gt;&lt;P&gt;406&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(hiP.next() = 0);&lt;/P&gt;&lt;P&gt;407&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(hiM.next() = 0);&lt;/P&gt;&lt;P&gt;408&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if h.find() ^= 0 then X = 0;;&lt;/P&gt;&lt;P&gt;409&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;410&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;411&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;412&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;413&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;414&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: There were 200 observations read from the data set WORK.HAVE.&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.WANT has 6812784 observations and 4 variables.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14.63 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.05 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.18 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9019k&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17780k&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/5/2015&amp;nbsp; 2:46:34 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;415&amp;nbsp; proc sql;&lt;/P&gt;&lt;P&gt;416&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;417&amp;nbsp;&amp;nbsp; select a.*,coalesce(b.x,0) as x&lt;/P&gt;&lt;P&gt;418&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/P&gt;&lt;P&gt;419&amp;nbsp;&amp;nbsp;&amp;nbsp; (select * from (select distinct HPG from have),(select distinct Plant from have),(select&lt;/P&gt;&lt;P&gt;419! distinct Material from have)) as a&lt;/P&gt;&lt;P&gt;420&amp;nbsp;&amp;nbsp;&amp;nbsp; left join&lt;/P&gt;&lt;P&gt;421&amp;nbsp;&amp;nbsp;&amp;nbsp; have as b&lt;/P&gt;&lt;P&gt;422&amp;nbsp;&amp;nbsp;&amp;nbsp; on a.HPG=b.HPG and a.Plant=b.Plant and a.Material=b.Material ;&lt;/P&gt;&lt;P&gt;NOTE: The execution of this query involves performing one or more Cartesian product joins that can&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; not be optimized.&lt;/P&gt;&lt;P&gt;NOTE: Table WORK.WANT created, with 6812784 rows and 4 columns.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;423&amp;nbsp; quit;&lt;/P&gt;&lt;P&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43.07 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16.73 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10.42 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 69088k&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 78196k&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/5/2015&amp;nbsp; 2:47:36 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Feb 2015 10:18:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-in-missing-observations-if-proc-timeseries-is-not-an-option/m-p/152678#M30056</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2015-02-05T10:18:45Z</dc:date>
    </item>
  </channel>
</rss>

