<?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>Thema "Betreff: erster Wert" in CoDe SAS German</title>
    <link>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/310053#M2100</link>
    <description>&lt;P&gt;Hallo &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/66189"&gt;@Fay123﻿&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;in dem Beispiel ist der SQL vermutlich die beste und schlankste Lösung.&lt;/P&gt;
&lt;P&gt;Ich würde trotzdem noch gerne auf due Befehle BY und RETAIN im Data-Step hinweisen.&lt;/P&gt;
&lt;P&gt;Mein Beispiel ist zwar deutlich länger als der SQL, bietet aber die Möglichkeit Einfluss zu nehmen, wenn zum Beispiel unterschiedliche Limits je Kunde vorkommen, der Kunde im Ergebnis aber nur einmal auftauchen soll.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data DATEN;
	input KUNDE $3. PREIS 2. LIMIT 3.;
	cards;
xyz 5 100
xyz 6 100
abc 3 110
abc 4 110
;
run;

proc sort data=DATEN;
	by KUNDE;
run;

data ERGEBNIS (drop=LIMIT PREIS);
	set DATEN;
	by KUNDE;
/* Ergebnisvariablen über einen Satz hinweg speichern */
retain LIMIT_ERG;
retain PREIS_ERG;

/* Neuer Kunde */
if first.KUNDE then do;
	LIMIT_ERG = LIMIT;
	PREIS_ERG = 0;
end;

/* Preis summieren */
PREIS_ERG = sum(PREIS_ERG, PREIS);

/* Letzter Satz des Kunden, also Ausgabe */
if last.KUNDE then output;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 08 Nov 2016 13:26:57 GMT</pubDate>
    <dc:creator>CKothenschulte</dc:creator>
    <dc:date>2016-11-08T13:26:57Z</dc:date>
    <item>
      <title>erster Wert</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/305952#M2090</link>
      <description>&lt;P&gt;Hallo!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ich habe eine Tabelle, wo ich einerseits Felder&amp;nbsp;summieren möchte, allerdings von einem Feld immer den ersten Wert übernehmen möchte.&lt;/P&gt;
&lt;P&gt;Z.B.&lt;/P&gt;
&lt;P&gt;Kunde&amp;nbsp;&amp;nbsp;&amp;nbsp; Preis&amp;nbsp;&amp;nbsp; Limit&lt;/P&gt;
&lt;P&gt;xyz&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/P&gt;
&lt;P&gt;xyz&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Resultat:&lt;/P&gt;
&lt;P&gt;xyz&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Gibt es eine Formel, die ich für den "ersten Wert" anwenden kann?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Wie immer vielen Dank für die Hilfe.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Oct 2016 14:23:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/305952#M2090</guid>
      <dc:creator>Fay123</dc:creator>
      <dc:date>2016-10-20T14:23:41Z</dc:date>
    </item>
    <item>
      <title>Betreff: erster Wert</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/305957#M2091</link>
      <description>&lt;P&gt;Hallo Fay,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;da gibt es mehrere Möglichkeiten...&lt;/P&gt;
&lt;P&gt;eine wäre z.B. einfach mit einem SQL:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;select
  kunde,
  sum(preis),
  limit
from xyz
group by kunde, limit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Beste Grüße&lt;/P&gt;
&lt;P&gt;Michael&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Oct 2016 14:29:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/305957#M2091</guid>
      <dc:creator>mfab</dc:creator>
      <dc:date>2016-10-20T14:29:52Z</dc:date>
    </item>
    <item>
      <title>Betreff: erster Wert</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/310053#M2100</link>
      <description>&lt;P&gt;Hallo &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/66189"&gt;@Fay123﻿&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;in dem Beispiel ist der SQL vermutlich die beste und schlankste Lösung.&lt;/P&gt;
&lt;P&gt;Ich würde trotzdem noch gerne auf due Befehle BY und RETAIN im Data-Step hinweisen.&lt;/P&gt;
&lt;P&gt;Mein Beispiel ist zwar deutlich länger als der SQL, bietet aber die Möglichkeit Einfluss zu nehmen, wenn zum Beispiel unterschiedliche Limits je Kunde vorkommen, der Kunde im Ergebnis aber nur einmal auftauchen soll.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data DATEN;
	input KUNDE $3. PREIS 2. LIMIT 3.;
	cards;
xyz 5 100
xyz 6 100
abc 3 110
abc 4 110
;
run;

proc sort data=DATEN;
	by KUNDE;
run;

data ERGEBNIS (drop=LIMIT PREIS);
	set DATEN;
	by KUNDE;
/* Ergebnisvariablen über einen Satz hinweg speichern */
retain LIMIT_ERG;
retain PREIS_ERG;

/* Neuer Kunde */
if first.KUNDE then do;
	LIMIT_ERG = LIMIT;
	PREIS_ERG = 0;
end;

/* Preis summieren */
PREIS_ERG = sum(PREIS_ERG, PREIS);

/* Letzter Satz des Kunden, also Ausgabe */
if last.KUNDE then output;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 08 Nov 2016 13:26:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/erster-Wert/m-p/310053#M2100</guid>
      <dc:creator>CKothenschulte</dc:creator>
      <dc:date>2016-11-08T13:26:57Z</dc:date>
    </item>
  </channel>
</rss>

