<?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: Database scripts in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Database-scripts/m-p/868687#M103142</link>
    <description>&lt;P&gt;You can for example split your table&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1744790302948.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74909iCACA075831E5803A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_0-1744790302948.png" alt="jthi_0-1744790302948.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;, then fill in missing based on the % column and finally update the values to your original table. And there are many ways of doing this filling, one option is via JSL and data table subscripting&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = Datatable("BD");

dt_split = dt &amp;lt;&amp;lt; Split(
	Split By(:Ref),
	Split(:"% UPDATED"n),
	Group(:Ref, :"%"n),
	Output Table("Split of BD by Ref"),
	Sort by Column Property,
	Invisible
);

cont_cols = dt_split &amp;lt;&amp;lt; Get Column Names("String", "Continuous");
Remove From(cont_cols, 1); // drop %

perc_vals = dt_split[0, "%"];

For Each({cont_col}, cont_cols,
	perc_vals_current = perc_vals;
	non_missing = dt_split &amp;lt;&amp;lt; Get Rows Where(!IsMissing(As Column(dt_split, cont_col)));
	perc_vals_current[non_missing] = dt_split[non_missing, cont_col];
	
	dt_split[0, cont_col] = perc_vals_current
);

dt &amp;lt;&amp;lt; Update(
	With(dt_split),
	Match Columns(:Ref = :Ref),
	Replace Columns in Main Table(None)
);

Close(dt_split, no save);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_1-1744790704267.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74911iFF85DF6ECD67D223/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_1-1744790704267.png" alt="jthi_1-1744790704267.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 16 Apr 2025 08:05:14 GMT</pubDate>
    <dc:creator>jthi</dc:creator>
    <dc:date>2025-04-16T08:05:14Z</dc:date>
    <item>
      <title>Database scripts</title>
      <link>https://community.jmp.com/t5/Discussions/Database-scripts/m-p/868673#M103140</link>
      <description>&lt;P&gt;Bonjour à tous,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;J'essaye d'automatiser certaines modifications dans une table de données pour pouvoir faire une analyse.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Je dispose des colonnes &lt;STRONG&gt;Ref, %&lt;/STRONG&gt; et &lt;STRONG&gt;% UPDATED&lt;/STRONG&gt; dans ma table de données, et à partir d'un script j'aimerais construire les colonnes A, B, ...., J :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hcarr01_0-1744788305325.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74908iAA55F0F9308C7AE1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="hcarr01_0-1744788305325.png" alt="hcarr01_0-1744788305325.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Danns la colonne A :&lt;/P&gt;
&lt;P&gt;- reprendre pour la ligne ref A (ligne 1) : la donnée de la colonne % UPDATED&lt;/P&gt;
&lt;P&gt;- reprendre pour les autres lignes : la donnée de la colonne %&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dans ma base de données initiale, j'ai environ 100 lignes distinctes dans ma colonne Ref, c'est pour ça que j'utilise pas directement une formule "If" pour créer mes 100 nouvelles colonnes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Vous trouverez en pièces-jointes les bases de données.&lt;/P&gt;
&lt;P&gt;Merci pour votre aide.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 07:40:32 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Database-scripts/m-p/868673#M103140</guid>
      <dc:creator>hcarr01</dc:creator>
      <dc:date>2025-04-16T07:40:32Z</dc:date>
    </item>
    <item>
      <title>Re: Database scripts</title>
      <link>https://community.jmp.com/t5/Discussions/Database-scripts/m-p/868687#M103142</link>
      <description>&lt;P&gt;You can for example split your table&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1744790302948.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74909iCACA075831E5803A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_0-1744790302948.png" alt="jthi_0-1744790302948.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;, then fill in missing based on the % column and finally update the values to your original table. And there are many ways of doing this filling, one option is via JSL and data table subscripting&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = Datatable("BD");

dt_split = dt &amp;lt;&amp;lt; Split(
	Split By(:Ref),
	Split(:"% UPDATED"n),
	Group(:Ref, :"%"n),
	Output Table("Split of BD by Ref"),
	Sort by Column Property,
	Invisible
);

cont_cols = dt_split &amp;lt;&amp;lt; Get Column Names("String", "Continuous");
Remove From(cont_cols, 1); // drop %

perc_vals = dt_split[0, "%"];

For Each({cont_col}, cont_cols,
	perc_vals_current = perc_vals;
	non_missing = dt_split &amp;lt;&amp;lt; Get Rows Where(!IsMissing(As Column(dt_split, cont_col)));
	perc_vals_current[non_missing] = dt_split[non_missing, cont_col];
	
	dt_split[0, cont_col] = perc_vals_current
);

dt &amp;lt;&amp;lt; Update(
	With(dt_split),
	Match Columns(:Ref = :Ref),
	Replace Columns in Main Table(None)
);

Close(dt_split, no save);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_1-1744790704267.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74911iFF85DF6ECD67D223/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_1-1744790704267.png" alt="jthi_1-1744790704267.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 08:05:14 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Database-scripts/m-p/868687#M103142</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2025-04-16T08:05:14Z</dc:date>
    </item>
  </channel>
</rss>

