<?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: Inserting records when values in a sequence is missing. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150710#M29724</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So here is the full code, tested this time.&amp;nbsp; The point is to create a dataset which will be the template for the other one. &lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp; attrib id format=$1. month quantity format=best.;&lt;BR /&gt;&amp;nbsp; infile datalines delimiter=",";&lt;BR /&gt;&amp;nbsp; input id $ month quantity;&lt;BR /&gt;datalines;&lt;BR /&gt;a,1,100&lt;BR /&gt;a,2,200&lt;BR /&gt;a,4,150&lt;BR /&gt;b,1,60&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;/* Create template, need to base it on your have data */&lt;BR /&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table IDS as&lt;BR /&gt;&amp;nbsp; select&amp;nbsp; distinct ID&lt;BR /&gt;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.HAVE;&lt;BR /&gt;quit;&lt;BR /&gt;data template (drop=i);&lt;BR /&gt;&amp;nbsp; set ids;&lt;BR /&gt;&amp;nbsp; do I=1 to 12;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; month=I;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table WANT as&lt;BR /&gt;&amp;nbsp; select&amp;nbsp; COALESCE(A.ID,B.ID) as ID,&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COALESCE(A.MONTH,B.MONTH) as MONTH,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.QUANTITY&lt;BR /&gt;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.HAVE A&lt;BR /&gt;&amp;nbsp; full join WORK.TEMPLATE B&lt;BR /&gt;&amp;nbsp; on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.ID=B.ID&lt;BR /&gt;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.MONTH=B.MONTH;&lt;BR /&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 May 2014 09:05:08 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2014-05-09T09:05:08Z</dc:date>
    <item>
      <title>Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150703#M29717</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My data set MYTAB has variables ID, MONTH, QUANTITY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an ID has no data for a MONTH in the sequence 1 - 12, I want to add a record with ID, MONTH and QUANTITY = &lt;STRONG&gt;.&lt;/STRONG&gt; (dot for missing numeric value).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So all ID:s should have 12 records each.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you any idea how to solve this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 13:45:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150703#M29717</guid>
      <dc:creator>attjooo</dc:creator>
      <dc:date>2014-05-08T13:45:23Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150704#M29718</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For this example where all ID's have the same month values you can do that with PROC SUMMARY CLASSDATA=&lt;/P&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; have;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id $ month quantitiy;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;cards&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffc0;"&gt;a 2 11&lt;BR /&gt;a 7 12&lt;BR /&gt;b 10 11&lt;BR /&gt;b 4 9&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;;;;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; classdata;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;if&lt;/SPAN&gt; &lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;0&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;then&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; have(keep=month);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; month=&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;1&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;to&lt;/SPAN&gt; &lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;12&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;output&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;stop&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;summary&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;nway&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=have &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;classdata&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=classdata;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;class&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; month;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;output&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=filled(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=_type_ _freq_) &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;idgroup&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(q:)=);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;print&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 13:56:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150704#M29718</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2014-05-08T13:56:46Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150705#M29719</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your answer. I am sure that it works, but for a person with little experience it's hard to understand the code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wouldn't it be possible to use CASE WHEN in PROC SQL?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some sort of pseudo code: When month is missing in [1,12} add record with ID, MONTH, QUANTITY (= &lt;STRONG&gt;. ).&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 14:15:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150705#M29719</guid>
      <dc:creator>attjooo</dc:creator>
      <dc:date>2014-05-08T14:15:03Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150706#M29720</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would suggest the easiest thing is to create a template dataset with the sequence you require and then merge that on.&amp;nbsp; For example (and I haven't tested this):&lt;/P&gt;&lt;P&gt;data template;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I=1 to 12;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month=I;&lt;/P&gt;&lt;P&gt;&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; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table WANT as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SOME_VARIABLES,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* note update per your table */&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COALESCE(A.MONTH,B.MONTH) as MONTH&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.HAVE A&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; full join&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.TEMPLATE B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.MONTH=B.MONTH;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will add in any missing months and the other variables will be missing.&amp;nbsp; If you need other variables populated then create your template with all necessary variables.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 14:32:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150706#M29720</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-05-08T14:32:20Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150707#M29721</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The COALESCE function r&lt;SPAN class="shortDesc"&gt;eturns the first &lt;STRONG&gt;non-missing&lt;/STRONG&gt; value from a list of numeric arguments.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="shortDesc"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="shortDesc"&gt;I don't understand how that function could be of any help.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 07:26:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150707#M29721</guid>
      <dc:creator>attjooo</dc:creator>
      <dc:date>2014-05-09T07:26:42Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150708#M29722</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Its a trick with merging and coalescing.&amp;nbsp; Say you have these two datasets and full join them on month:&lt;/P&gt;&lt;P&gt;Data A&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;&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; Data B&lt;/P&gt;&lt;P&gt;Month&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Month&lt;/P&gt;&lt;P&gt;Jan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&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;&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; Jan&lt;/P&gt;&lt;P&gt;Feb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Feb&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;&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;&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; Mar&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;&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;&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; ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The full join expands the first table to include values from the right, however the month would be missing if we did not do the coalesce for Mar. Eg.&lt;/P&gt;&lt;P&gt;select a.month...&amp;nbsp;&amp;nbsp; = Month=missing, Result=missing as A.MONTH does not contain anything.&lt;/P&gt;&lt;P&gt;select coalesce(a.month,b.month) = Month=Mar, Result = missing, as the data from b is used as a is missing.&lt;/P&gt;&lt;P&gt;So, the full join creates all the necessary extra rows, the coalesce ensures that the variables are populated where necessary.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 08:13:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150708#M29722</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-05-09T08:13:25Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150709#M29723</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your code doesn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I get the same number of records, but in ascending order with regard to MONTH. So first all MONTH =1, then all MONTH =2 , etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I started each ID:s all records was displayed together( in ascending order with regard to MONTH ).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 08:56:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150709#M29723</guid>
      <dc:creator>attjooo</dc:creator>
      <dc:date>2014-05-09T08:56:18Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150710#M29724</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So here is the full code, tested this time.&amp;nbsp; The point is to create a dataset which will be the template for the other one. &lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp; attrib id format=$1. month quantity format=best.;&lt;BR /&gt;&amp;nbsp; infile datalines delimiter=",";&lt;BR /&gt;&amp;nbsp; input id $ month quantity;&lt;BR /&gt;datalines;&lt;BR /&gt;a,1,100&lt;BR /&gt;a,2,200&lt;BR /&gt;a,4,150&lt;BR /&gt;b,1,60&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;/* Create template, need to base it on your have data */&lt;BR /&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table IDS as&lt;BR /&gt;&amp;nbsp; select&amp;nbsp; distinct ID&lt;BR /&gt;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.HAVE;&lt;BR /&gt;quit;&lt;BR /&gt;data template (drop=i);&lt;BR /&gt;&amp;nbsp; set ids;&lt;BR /&gt;&amp;nbsp; do I=1 to 12;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; month=I;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table WANT as&lt;BR /&gt;&amp;nbsp; select&amp;nbsp; COALESCE(A.ID,B.ID) as ID,&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COALESCE(A.MONTH,B.MONTH) as MONTH,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.QUANTITY&lt;BR /&gt;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.HAVE A&lt;BR /&gt;&amp;nbsp; full join WORK.TEMPLATE B&lt;BR /&gt;&amp;nbsp; on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.ID=B.ID&lt;BR /&gt;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.MONTH=B.MONTH;&lt;BR /&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 09:05:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150710#M29724</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-05-09T09:05:08Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150711#M29725</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*get all ID's;&lt;/P&gt;&lt;P&gt;proc sort&lt;/P&gt;&lt;P&gt;&amp;nbsp; data=mytab (keep=ID)&lt;/P&gt;&lt;P&gt;&amp;nbsp; out=control&lt;/P&gt;&lt;P&gt;&amp;nbsp; nodupkey&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;by ID;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*to be on the safe side;&lt;/P&gt;&lt;P&gt;proc sort data=mytab;&lt;/P&gt;&lt;P&gt;by ID MONTH;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*make 12 months for every ID;&lt;/P&gt;&lt;P&gt;data control2;&lt;/P&gt;&lt;P&gt;set control;&lt;/P&gt;&lt;P&gt;do MONTH = 1 to 12;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data result;&lt;/P&gt;&lt;P&gt;merge&lt;/P&gt;&lt;P&gt;&amp;nbsp; mytab (in=a)&lt;/P&gt;&lt;P&gt;&amp;nbsp; control2 (in=b)&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;if b;&lt;/P&gt;&lt;P&gt;by ID MONTH;&lt;/P&gt;&lt;P&gt;*everytime there is no record from mytab, quantity is implicitely set to .;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edit: Ups, forgot "by ID MONTH;" in the last data step.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 09:09:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150711#M29725</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-05-09T09:09:54Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150712#M29726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thankyou RW9 for your solution. Now it worked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am forced to use SAS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This would have been an easy problem to solve in an ordinary programming language, working with arrays, and that code would have been easy to understand for anyone with basic knowledge in programming.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 10:18:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150712#M29726</guid>
      <dc:creator>attjooo</dc:creator>
      <dc:date>2014-05-09T10:18:11Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150713#M29727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The suggestion posted was merely for one method of doing such a task.&amp;nbsp; SAS also has arrays syntax:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array months {12} 3. (1,2,3,4,5,6,7,8,9,10,11,12);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could also look at this snippet:&lt;/P&gt;&lt;P&gt;retain lstmonth;&lt;/P&gt;&lt;P&gt;if month ne lstmonth then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I=lstmonth to month-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month=I;&lt;/P&gt;&lt;P&gt;&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; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So keep the last value of month, and if the current rows month is not the previous month +1 then output rows for the difference.&amp;nbsp; Note you need to check for month=12, and set other values to missing for these additional rows. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As with most problems there is no one singular method to get what you want &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 10:39:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150713#M29727</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-05-09T10:39:53Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150714#M29728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thankyou KurtBremser.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your code was more easy to understand.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2014 11:01:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150714#M29728</guid>
      <dc:creator>attjooo</dc:creator>
      <dc:date>2014-05-09T11:01:54Z</dc:date>
    </item>
    <item>
      <title>Re: Inserting records when values in a sequence is missing.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150715#M29729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;EASY FOR 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;&amp;nbsp; input id $ month quantitiy;
&amp;nbsp;&amp;nbsp; cards; 
a 2 11
a 7 12
b 10 11
b 4 9
;;;;
&amp;nbsp;&amp;nbsp; run; 
data m;
 do month=1 to 12;
&amp;nbsp; output;
 end;
run;
proc sql;
create table temp as
 select * from &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(select distinct id from have) as a,m;
create table want as
 select temp.*,have.quantitiy
&amp;nbsp; from have right join&amp;nbsp; temp on temp.id=have.id and temp.month=have.month;

quit;

&lt;/PRE&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>Fri, 09 May 2014 13:49:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Inserting-records-when-values-in-a-sequence-is-missing/m-p/150715#M29729</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-05-09T13:49:58Z</dc:date>
    </item>
  </channel>
</rss>

