<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>MSSQL - Transpose</title>
    <link>http://forum.geizhals.at/feed.jsp?id=737877</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(6): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317879.html#6317879</link>
      <description>Also die Lieferanten sind natürlich in anderen Tabellen angelegt, ich wollte nur das Beispiel nicht unnötig verkomplizieren - in der View die schlussendlich entstehen soll (eigentlich sinds mehrere leicht unterschiedliche) sind ca. 30 Spalten vorhanden &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Eine Linenum o.ä. hätte ich jedoch nicht gesehen, sehe jedoch auch den Zweck dahinter nicht. Irgendwo gibts glaub ich noch die Möglichkeit einen Stammlieferanten/Bevorzugten Lieferanten zu definieren, das wars dann aber schon.&lt;br&gt;&lt;br&gt;Danke dir jedenfalls &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 21:34:16 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317879.html#6317879</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-23T21:34:16Z</dc:date>
    </item>
    <item>
      <title>Re(7): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317792.html#6317792</link>
      <description>ok... wenn die Daten selten geändert werden, dann ist die Möglichkeit mit der sp und der weiteren Tabelle ok.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:53:40 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317792.html#6317792</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T19:53:40Z</dc:date>
    </item>
    <item>
      <title>Re(6): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317789.html#6317789</link>
      <description>kommt immer drauf an wie viel "müll" entsteht, und wie groß der aufwand ist ihn zu vermeiden. wenn es so ist wie er schreibt, daß die quelltable auch so gut wie nie geändert wird würd ich mir auch um die performance keine sorgen machen. aber es gibt ansonsten immer möglichkeiten mit flugzeugträgern möwen zu töten. (ja mir ist durchaus bewußt daß die performance nicht die beste ist, allerdings liegt sie noch VOR der von manchen view konstellationen, da nur auf trigger updgedatet wird, und zu diesem zeitpunkt wie beim view auch schon ein execution plan besteht)&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:52:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317789.html#6317789</guid>
      <dc:creator>zeddicus</dc:creator>
      <dc:date>2011-01-23T19:52:19Z</dc:date>
    </item>
    <item>
      <title>Re(5): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317779.html#6317779</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Das Datenmodell an sich ist ja eh schön.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;finde ich persönlich nicht, denn ich gehe zwar davon aus, dass die Tabelle Lieferantusw. mehr Spalten enthält aber bei deiner Angabe fehlt mir die 1. eine eindeutige ID der jeweiligen Records und 2. würde ich den Datenbestand eben so aufbauen, dass wenn die Artikelnummer mehrfach vorkommen kann eben soetwas wie eine LineNum oder eben ID bezogen auf den jeweiligen Artikel ebenso abgelegt wird.&lt;br&gt;&lt;br&gt;außerdem müssten mMn die Hersteller sowieso in einer ganz eigenen Tabelle hinterlegt sein und du schreibst in die Lieferantusw. Tabelle nur die ID des Lieferanten und nicht dessen Namen.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:43:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317779.html#6317779</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T19:43:53Z</dc:date>
    </item>
    <item>
      <title>Re(5): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317795.html#6317795</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Das Datenmodell an sich ist ja eh schön.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;finde ich persönlich nicht, denn ich gehe zwar davon aus, dass die Tabelle Lieferantusw. mehr Spalten enthält aber bei deiner Angabe fehlt mir die 1. eine eindeutige ID der jeweiligen Records und 2. würde ich den Datenbestand eben so aufbauen, dass wenn die Artikelnummer mehrfach vorkommen kann eben soetwas wie eine LineNum oder eben ID bezogen auf den jeweiligen Artikel ebenso abgelegt wird.&lt;br&gt;&lt;br&gt;außerdem müssten mMn die Hersteller sowieso in einer ganz eigenen Tabelle hinterlegt sein und du schreibst in die Lieferantusw. Tabelle nur die ID des Lieferanten und nicht dessen Namen.&lt;br&gt;&lt;br&gt;edit2: aber ist ja egal. Funktionieren muss es und das tut es anscheinend und dein gewünschtes Resultat hast du auch. Somit passts ja eh &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:43:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317795.html#6317795</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T19:43:53Z</dc:date>
    </item>
    <item>
      <title>Re(5): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317777.html#6317777</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Das Datenmodell an sich ist ja eh schön.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;finde ich persönlich nicht, denn ich gehe zwar davon aus, dass die Tabelle Lieferantusw. mehr Spalten enthält aber bei deiner Angabe fehlt mir die 1. eine eindeutige ID der jeweiligen Records und 2. würde ich den Datenbestand eben so aufbauen, dass wenn die Artikelnummer mehrfach vorkommen kann eben soetwas wie eine LineNum oder eben ID bezogen auf den jeweiligen Artikel ebenso abgelegt wird.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:43:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317777.html#6317777</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T19:43:53Z</dc:date>
    </item>
    <item>
      <title>Re(5): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317776.html#6317776</link>
      <description>finde ich persönlich nicht, denn ich gehe zwar davon aus, dass die Tabelle Lieferantusw. mehr Spalten enthält aber bei deiner Angabe fehlt mir die 1. eine eindeutige ID der jeweiligen Records und 2. würde ich den Datenbestand eben so aufbauen, dass wenn die Artikelnummer mehrfach vorkommen kann eben soetwas wie eine LineNum oder eben ID bezogen auf den jeweiligen Artikel ebenso abgelegt wird.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:43:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317776.html#6317776</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T19:43:53Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317773.html#6317773</link>
      <description>das mit den left joins stimmt schon, aber eigentlich mache ich da nichts anderes wie eine PIVOT Funktion (nur händisch). Rein theoretisch müsste ein PIVOT auf die 1. View funktionieren.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:40:29 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317773.html#6317773</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T19:40:29Z</dc:date>
    </item>
    <item>
      <title>Re(2): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317762.html#6317762</link>
      <description>Hm .. ich habs ausprobiert und muss sagen - die Lösung sieht auch interessant aus.&lt;br&gt;&lt;br&gt;Jetzt gilts wohl abzuwägen was mehr "Zeit" kostet. Eine "relativ" komplexe View (LEFT OUTER JOINs sind ja nicht sooo nett) oder eine Zwischentabelle.&lt;br&gt;&lt;br&gt;Ich lass es mir mal durch den Kopf gehen, danke &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:18:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317762.html#6317762</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-23T19:18:02Z</dc:date>
    </item>
    <item>
      <title>Re(4): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317752.html#6317752</link>
      <description>Das Datenmodell an sich ist ja eh schön.&lt;br&gt;Zu einem Artikel gibts mehrere Lieferanten und für jeden Lieferanten natürlich eine Bestellnummer (die ja von Lieferant zu Lieferant variieren kann).&lt;br&gt;&lt;br&gt;Das was ich erzeugen muss ist nicht so schön, da setzt jedoch das verarbeitende Programm die Grenzen. &lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 19:06:15 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317752.html#6317752</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-23T19:06:15Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317487.html#6317487</link>
      <description>aber warum Datenmüll erzeugen, wenns eine View mindestens bzw. sogar eleganter löst?&lt;br&gt;&lt;br&gt;Desweiteren: wenn das wirklich eine Produktivdatanbank ist die noch 5 Jahre weiterverwendet wird... warum ist bspw. die Lieferant-Tabelle so mies "designed"?&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 14:56:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317487.html#6317487</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T14:56:05Z</dc:date>
    </item>
    <item>
      <title>Re(5): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317484.html#6317484</link>
      <description>und außerdem wird durch die neue tabelle nur unnötiger daten"müll" erzeugt. Eine Tabelle befüllen mit Daten die ja sowieso vorhanden sind finde ich... naja... nicht sooo elegant.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 14:53:23 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317484.html#6317484</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T14:53:23Z</dc:date>
    </item>
    <item>
      <title>Re(4): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317327.html#6317327</link>
      <description>&lt;blockquote&gt;&lt;em&gt; wenn es nicht erforderlich ist -&gt; Wurscht&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;ich seh das ähnlich - vor allem möchte ich nach zwei Monaten auf einen Blick (performant!!) erkennen, was ich da gecoded hab ...&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 11:51:06 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317327.html#6317327</guid>
      <dc:creator>kiff-kiff</dc:creator>
      <dc:date>2011-01-23T11:51:06Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317284.html#6317284</link>
      <description>zum Punkt Performanz: Ich kannmir nicht vorstellen dass die "Zeddicus" Lösung wirklich performant ist - wenn es nicht erforderlich ist -&gt; Wurscht;&lt;br&gt;&lt;br&gt;Ich kann mich nur erinnern dass solche Konstrukte eher langsam sind.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 10:50:30 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317284.html#6317284</guid>
      <dc:creator>King_Uli</dc:creator>
      <dc:date>2011-01-23T10:50:30Z</dc:date>
    </item>
    <item>
      <title>Re(2): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317180.html#6317180</link>
      <description>Danke, das Ranking muss ich mir mal genauer anschauen (für die Zukunft). Ich habe mittlerweile die Lösung von zeddicus implementiert und bin damit eigentlich recht zufrieden &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Danke dir jedenfalls für die Ideen.&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 08:21:27 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317180.html#6317180</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-23T08:21:27Z</dc:date>
    </item>
    <item>
      <title>Re(4): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317178.html#6317178</link>
      <description>&lt;a href="http://forum.geizhals.at/t737877,6317177.html#6317177" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;forum.geizhals.at/&lt;wbr/&gt;t737877,6317177.html#6317177&lt;/a&gt; &lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 08:20:13 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317178.html#6317178</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-23T08:20:13Z</dc:date>
    </item>
    <item>
      <title>Re(2): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317177.html#6317177</link>
      <description>Hehe, MSSQL kennt zwar ein TOP, aber kein LIMIT ... das heisst nix mit limit 0,1&lt;br&gt;&lt;br&gt;Jetzt gäbe es natürlich die Lösung das mit zwei verschachtelten Schleifen abzubilden, ist aber sicher alles andere als performant.&lt;br&gt;&lt;br&gt;Ich habe mir jetzt mal angesehen wie mit den Daten umgegangen wird und bin zum Schluss gekommen dass an den Daten nur ganz selten (2,3 mal am Tag) was geändert wird, diese aber oft abgefragt werden.&lt;br&gt;&lt;br&gt;Ich habe daher die Lösung von zeddicus genommen und meinen Anforderungen nach adaptiert. Nun wird nach einer Änderung der Daten mittels eines Triggers eine entsprechende Tabelle mit den gesamten Daten aktualisiert. Die Views greifen dann auf diese Zwischentabelle zurück. Das hat den Vorteil dass ich die Views sehr einfach halten kann, weil alle Daten im Prinzip schon in der Zwischentabelle drin sind und ich nur noch nach den entsprechenden Eigenschaften filtern muss.&lt;br&gt;Nachteil ist natürlich dass sich die Daten 2x in der Datenbank befinden, das wird jedoch dadurch gelöst dass diese Tabelle eben quasi "von der DB selbst" generiert wird. Der Client bekommt davon gar nichts mit.&lt;br&gt;&lt;br&gt;Ich denke das ist eine Lösung mit der wir sicher die nächsten 5 Jahre überdauern können (und wahrscheinlich auch länger).&lt;br&gt;&lt;br&gt;Daher danke an alle die hier mitgeholfen haben &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 08:20:04 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317177.html#6317177</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-23T08:20:04Z</dc:date>
    </item>
    <item>
      <title>Re: MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317159.html#6317159</link>
      <description>kann dein SQL subquery? dann würde ich es mal so versuchen:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
SELECT ARTIKEL,NAME, &#xD;
(SELECT ARTIKEL from ARTIKELLIEFERANT where ARTIKEL = a.ARTIKEL limit 0,1),&#xD;
(SELECT ARTIKEL from ARTIKELLIEFERANT where ARTIKEL = a.ARTIKEL limit 1,1),&#xD;
(SELECT ARTIKEL from ARTIKELLIEFERANT where ARTIKEL = a.ARTIKEL limit 2,1) from ARTIKEL a&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;du kannst die spalten dann noch mit AS überschreiben lassen und auch sonst daran tunen.&lt;br&gt;&lt;br&gt;Grundsätzlich funktionierts (bei MySQL), ob es in einer Umgebung läuft stellst du selber fest &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;@die anderen Lösungsvorschläge: keep it simple!!&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 07:44:54 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317159.html#6317159</guid>
      <dc:creator>kiff-kiff</dc:creator>
      <dc:date>2011-01-23T07:44:54Z</dc:date>
    </item>
    <item>
      <title>Re: MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317115.html#6317115</link>
      <description>direkt mit PIVOT wird das nicht hinhauen.&lt;br&gt;&lt;br&gt;ich würde das ganze über einen zwischenschritt mittels einer view realisieren die dir so etwas wie eine Zeilen ID bezogen auf die Artikelnummer generiert. Das geht am einfachsten über RANK() OVER.&lt;br&gt;&lt;br&gt;Konkret für dein Beispiel:&lt;br&gt;&lt;br&gt;1. Schritt die View die dir das "ranking" erstellt:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t0.artikel, t0.name, t1.lieferantname, t1.lieferantbestnr, rank() OVER (Partition BY T0.artikel ORDER BY t1.lieferantbestnr) AS liefid&lt;br&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.[@artikel] AS t0 LEFT OUTER JOIN&lt;br&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;dbo.[@artikellieferant] AS t1 ON t0.artikel = t1.artikel&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;ich habe diese als dbo.v_liefid abgespeichert. Das SQL Server Management Studio wird dir beim Ausführen direkt in der View einen Fehler ausgeben - funktioniert aber trotzdem &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;Nun haben wir pro Artikel eine LieferantenID mit der wir weiterarbeiten können.&lt;br&gt;&lt;br&gt;2. Schritt wäre nun deine gewünschte View damit das oben gewünschte Ergebnis ausgeben wird:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;br&gt;select t0.artikel, t0.name, t1.lieferantname, t1.lieferantbestnr, t2.lieferantname, t2.lieferantbestnr, t3.lieferantname, t3.lieferantbestnr&lt;br&gt;from dbo.[@artikel] as t0&lt;br&gt;left join dbo.v_liefid t1 on t0.artikel = t1.artikel and t1.liefid = 1&lt;br&gt;left join dbo.v_liefid t2 on t0.artikel = t2.artikel and t2.liefid = 2&lt;br&gt;left join dbo.v_liefid t3 on t0.artikel = t3.artikel and t3.liefid = 3&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;die Spalten musst halt dann noch mit AS so benennen wie du es gerne hättest. Diese Kosmetikaufgabe überlasse ich dir.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 00:02:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317115.html#6317115</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T00:02:20Z</dc:date>
    </item>
    <item>
      <title>Re: MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6317100.html#6317100</link>
      <description>mit PIVOT wird das nicht hinhauen.&lt;br&gt;&lt;br&gt;ich würde das ganze über einen zwischenschritt mittels einer view realisieren die dir so etwas wie eine Zeilen ID bezogen auf die Artikelnummer generiert. Das geht am einfachsten über RANK() OVER.&lt;br&gt;&lt;br&gt;Konkret für dein Beispiel:&lt;br&gt;&lt;br&gt;1. Schritt die View die dir das "ranking" erstellt:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t0.artikel, t0.name, t1.lieferantname, t1.lieferantbestnr, rank() OVER (Partition BY T0.artikel ORDER BY t1.lieferantbestnr) AS liefid&lt;br&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.[@artikel] AS t0 LEFT OUTER JOIN&lt;br&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;dbo.[@artikellieferant] AS t1 ON t0.artikel = t1.artikel&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;ich habe diese als dbo.v_liefid abgespeichert. Das SQL Server Management Studio wird dir beim Ausführen direkt in der View einen Fehler ausgeben - funktioniert aber trotzdem &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;Nun haben wir pro Artikel eine LieferantenID mit der wir weiterarbeiten können.&lt;br&gt;&lt;br&gt;2. Schritt wäre nun deine gewünschte View damit das oben gewünschte Ergebnis ausgeben wird:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;br&gt;select t0.artikel, t0.name, t1.lieferantname, t1.lieferantbestnr, t2.lieferantname, t2.lieferantbestnr, t3.lieferantname, t3.lieferantbestnr&lt;br&gt;from dbo.[@artikel] as t0&lt;br&gt;left join dbo.v_liefid t1 on t0.artikel = t1.artikel and t1.liefid = 1&lt;br&gt;left join dbo.v_liefid t2 on t0.artikel = t2.artikel and t2.liefid = 2&lt;br&gt;left join dbo.v_liefid t3 on t0.artikel = t3.artikel and t3.liefid = 3&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;die Spalten musst halt dann noch mit AS so benennen wie du es gerne hättest. Diese Kosmetikaufgabe überlasse ich dir.&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 23 Jan 2011 00:02:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6317100.html#6317100</guid>
      <dc:creator>blitzfreak</dc:creator>
      <dc:date>2011-01-23T00:02:20Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6316721.html#6316721</link>
      <description>Das war ja auch nur ein Beispiel um die mehreren Positionen abzufragen.&lt;br&gt;&lt;br&gt;Den Rest musst noch selber machen sprich einfach eine zweite Schleife die dir die entsprechenden Werte in die Felder gibt.&lt;br/&gt;</description>
      <pubDate>Sat, 22 Jan 2011 17:16:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6316721.html#6316721</guid>
      <dc:creator>King_Uli</dc:creator>
      <dc:date>2011-01-22T17:16:35Z</dc:date>
    </item>
    <item>
      <title>Re(4): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6316132.html#6316132</link>
      <description>Wow, danke vielmals ... ich glaube so könnte das funktionieren. Ich werde das sofort mal testen &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 21:54:52 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6316132.html#6316132</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-21T21:54:52Z</dc:date>
    </item>
    <item>
      <title>Re(2): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6316130.html#6316130</link>
      <description>Hmm .. also wenn ich mir das so ansehe baut mir das eine CSV auf, macht aber keine "Spalten". Ich brauche die Daten jedoch zwingend in Spalten angeordnet &lt;img src="sad.gif" width="16" height="19" align="absmiddle" alt=":("/&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 21:54:27 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6316130.html#6316130</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-21T21:54:27Z</dc:date>
    </item>
    <item>
      <title>Re: MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315780.html#6315780</link>
      <description>Hallo !&lt;br&gt;&lt;br&gt;meine Lösung dafür wäre es mittels min() und max() den niedriegsten bzw den höchsten Wert herauszuzuschen.&lt;br&gt;&lt;br&gt;Du wirst nicht umhin kommen eine etwas wildere Schleifkonstruktion zu basteln.&lt;br&gt;&lt;br&gt;Ich poste hier meinen Code für eine Funktion , den du gerne abwandeln kannst.&lt;br&gt;( es handelt sich hier um ein Beispiel wo es um Autoren zu einem Buch (identifiziert über die ISBN) geht)&lt;br&gt;&lt;br&gt;-&gt; die @ISBN wäre in deinem Fall die Artikel Nummer&lt;br&gt;&lt;br&gt;&lt;br&gt;CREATE FUNCTION Bib.udf_Autoren_pro_ISBN&lt;br&gt;(@ISBN NVARCHAR(13))&lt;br&gt;RETURNS nvarchar(256)&lt;br&gt;AS&lt;br&gt;BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp;DECLARE @Autoren nvarchar(256)&lt;br&gt;&amp;nbsp;&amp;nbsp;DECLARE @NeuerAutor nvarchar(64)&lt;br&gt;&amp;nbsp;&amp;nbsp;DECLARE @laufvariable int = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;DECLARE @MinAutorID int&lt;br&gt;&amp;nbsp;&amp;nbsp;DECLARE @MaxAutorID int&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;-- ermittle min und max Autor ID für den gegebenen Buch Titel&lt;br&gt;&amp;nbsp;&amp;nbsp;SELECT @MinAutorID = MIN(AutorID) FROM tbl_ISBNAutor WHERE ISBN = @ISBN&lt;br&gt;&amp;nbsp;&amp;nbsp;SELECT @MaxAutorID = MAX(AutorID) FROM tbl_ISBNAutor WHERE ISBN = @ISBN&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;-- initialisiere Variablen für die WHILE Schleife &lt;br&gt;&amp;nbsp;&amp;nbsp;SET @laufvariable = @MinAutorID&lt;br&gt;&amp;nbsp;&amp;nbsp;SET @Autoren = ''&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;WHILE @laufvariable &amp;lt;= @MaxAutorID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET @NeuerAutor = ''&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT @NeuerAutor = LTRIM(ISNULL(a.Vorname,'') + ' ' + a.Nachname)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM Bib.tbl_ISBNAutor AS i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JOIN Bib.tbl_BuchAutor AS a ON i.AutorID = a.AutorID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE i.ISBN = @ISBN AND i.AutorID = @laufvariable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET @Autoren = @Autoren + @NeuerAutor&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET @laufvariable = @laufvariable + 1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-- Komma setzen wenn nicht der letzte Autor&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IF @laufvariable &lt;= @MaxAutorID AND @NeuerAutor &lt;&gt; ''&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET @Autoren = @Autoren + ', '&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;END&lt;br&gt;&amp;nbsp;&amp;nbsp;RETURN @Autoren &lt;br&gt;END&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 16:05:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315780.html#6315780</guid>
      <dc:creator>King_Uli</dc:creator>
      <dc:date>2011-01-21T16:05:56Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315264.html#6315264</link>
      <description>ich auch net, drum sind meine lösungen meist eher improvisiert &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;also die tabelle neu aufbaun (is nur so dahingeschrieben, muss net funktionieren, und ist sicher keine schöne lösung) (ok, eigentlich superhäßlich)&lt;br&gt;&lt;br&gt;wenn die tabelle angelegt ist und neuetabelle heißt, gings in etwa so:&lt;br&gt;&lt;br&gt;truncate table neuetabelle&lt;br&gt;&lt;br&gt;insert into neuetabelle (artikel, [name]) select distinct artikel, [name] from artikel&lt;br&gt;update neuetabelle&lt;br&gt; set lief1 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel),&lt;br&gt; set liefnr1 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief1),&lt;br&gt; set lief2 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1),&lt;br&gt; set liefnr2 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief2),&lt;br&gt; set lief3 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1 and not lieferantname = neuetabelle.lief2),&lt;br&gt; set liefnr3 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief3)&lt;br&gt;&lt;br&gt;&lt;br&gt;danach hättest die table. ist aber wirklich sauhäßlich, aber zumindest hättest mal deine tabelle &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Edit: für die top 1 queries müsstest ev. noch ein order by einbaun, damits deterministischer ist welche 3 ausgewählt werden (zb. order by lieferantname)&lt;br&gt;&lt;br&gt;Bin mir jetzt net sicher ob der inhalt gleich aktualisiert wird zwecks der subqueries, oder ob dus in einzelne updates aufteilen müsstest&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 11:08:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315264.html#6315264</guid>
      <dc:creator>zeddicus</dc:creator>
      <dc:date>2011-01-21T11:08:05Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315259.html#6315259</link>
      <description>ich auch net, drum sind meine lösungen meist eher improvisiert &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;also die tabelle neu aufbaun (is nur so dahingeschrieben, muss net funktionieren, und ist sicher keine schöne lösung) (ok, eigentlich superhäßlich)&lt;br&gt;&lt;br&gt;wenn die tabelle angelegt ist und neuetabelle heißt, gings in etwa so:&lt;br&gt;&lt;br&gt;truncate table neuetabelle&lt;br&gt;&lt;br&gt;insert into neuetabelle (artikel, [name]) select distinct artikel, [name] from artikel&lt;br&gt;update neuetabelle&lt;br&gt; set lief1 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel),&lt;br&gt; set liefnr1 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief1)&lt;br&gt;&lt;br&gt;update neuetabelle&lt;br&gt; set lief2 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1),&lt;br&gt; set liefnr2 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief2)&lt;br&gt;&lt;br&gt;update neuetabelle&lt;br&gt; set lief3 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1 and not lieferantname = neuetabelle.lief3),&lt;br&gt; set liefnr3 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief3)&lt;br&gt;&lt;br&gt;&lt;br&gt;danach hättest die table. ist aber wirklich sauhäßlich, aber zumindest hättest mal deine tabelle &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Edit: für die top 1 queries müsstest ev. noch ein order by einbaun, damits deterministischer ist welche 3 ausgewählt werden (zb. order by lieferantname)&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 11:08:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315259.html#6315259</guid>
      <dc:creator>zeddicus</dc:creator>
      <dc:date>2011-01-21T11:08:05Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315253.html#6315253</link>
      <description>ich auch net, drum sind meine lösungen meist eher improvisiert &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;also die tabelle neu aufbaun (is nur so dahingeschrieben, muss net funktionieren, und ist sicher keine schöne lösung) (ok, eigentlich superhäßlich)&lt;br&gt;&lt;br&gt;wenn die tabelle angelegt ist und neuetabelle heißt, gings in etwa so:&lt;br&gt;&lt;br&gt;truncate table neuetabelle&lt;br&gt;&lt;br&gt;insert into neuetabelle (artikel, [name]) select distinct artikel, [name] from artikel&lt;br&gt;update neuetabelle&lt;br&gt; set lief1 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel),&lt;br&gt; set liefnr1 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief1)&lt;br&gt;&lt;br&gt;update neuetabelle&lt;br&gt; set lief2 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1),&lt;br&gt; set liefnr2 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief2)&lt;br&gt;&lt;br&gt;update neuetabelle&lt;br&gt; set lief3 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1 and not lieferantname = neuetabelle.lief3),&lt;br&gt; set liefnr3 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief3)&lt;br&gt;&lt;br&gt;&lt;br&gt;danach hättest die table. ist aber wirklich sauhäßlich, aber zumindest hättest mal deine tabelle &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 11:08:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315253.html#6315253</guid>
      <dc:creator>zeddicus</dc:creator>
      <dc:date>2011-01-21T11:08:05Z</dc:date>
    </item>
    <item>
      <title>Re(3): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315262.html#6315262</link>
      <description>ich auch net, drum sind meine lösungen meist eher improvisiert &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;also die tabelle neu aufbaun (is nur so dahingeschrieben, muss net funktionieren, und ist sicher keine schöne lösung) (ok, eigentlich superhäßlich)&lt;br&gt;&lt;br&gt;wenn die tabelle angelegt ist und neuetabelle heißt, gings in etwa so:&lt;br&gt;&lt;br&gt;truncate table neuetabelle&lt;br&gt;&lt;br&gt;insert into neuetabelle (artikel, [name]) select distinct artikel, [name] from artikel&lt;br&gt;update neuetabelle&lt;br&gt; set lief1 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel),&lt;br&gt; set liefnr1 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief1),&lt;br&gt; set lief2 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1),&lt;br&gt; set liefnr2 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief2),&lt;br&gt; set lief3 = (select top 1 lieferantname from artikellieferant where artikel&amp;nbsp;&amp;nbsp;= neuetabelle.artikel and not lieferantname = neuetabelle.lief1 and not lieferantname = neuetabelle.lief3),&lt;br&gt; set liefnr3 = (select lieferantbestnr from artikellieferant where artikel = neuetabelle.artikel and lieferantname = neuetabelle.lief3)&lt;br&gt;&lt;br&gt;&lt;br&gt;danach hättest die table. ist aber wirklich sauhäßlich, aber zumindest hättest mal deine tabelle &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Edit: für die top 1 queries müsstest ev. noch ein order by einbaun, damits deterministischer ist welche 3 ausgewählt werden (zb. order by lieferantname)&lt;br&gt;&lt;br&gt;Bin mir jetzt net sicher ob der inhalt gleich aktualisiert wird zwecks der subqueries, oder ob dus in einzelne updates aufteilen müsstest&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 11:08:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315262.html#6315262</guid>
      <dc:creator>zeddicus</dc:creator>
      <dc:date>2011-01-21T11:08:05Z</dc:date>
    </item>
    <item>
      <title>Re(2): MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315028.html#6315028</link>
      <description>Hmm .... Ja das klingt nach einer möglichen Lösung. Ich muss allerdings zugeben dass ichs auch auf manuellem Weg schon nicht geschafft habe dieses "Layout" zu erzeugen - bin aber auch nicht so DER SQL Spezialist &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 09:33:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315028.html#6315028</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-21T09:33:19Z</dc:date>
    </item>
    <item>
      <title>Re: MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6315014.html#6315014</link>
      <description>Hm. Also direkt als View bin ich grad auch überfragt. Wärs ne alternative die gewünschte Table durch eine SP erzeugen und per Trigger updaten zu lassen?&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 09:24:14 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6315014.html#6315014</guid>
      <dc:creator>zeddicus</dc:creator>
      <dc:date>2011-01-21T09:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6314888.html#6314888</link>
      <description>würde mich auch interessieren.&lt;br&gt;&lt;br&gt;kenn zwar deine app nicht, ich selbst löse das in zwei schritten:&lt;br&gt;&lt;br&gt;select product&lt;br&gt;while product&lt;br&gt;select lieferant&lt;br&gt;&lt;br&gt;jetzt nur abstrakt, kein code&lt;br/&gt;</description>
      <pubDate>Fri, 21 Jan 2011 06:36:47 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6314888.html#6314888</guid>
      <dc:creator>kiff-kiff</dc:creator>
      <dc:date>2011-01-21T06:36:47Z</dc:date>
    </item>
    <item>
      <title>MSSQL - Transpose</title>
      <link>http://forum.geizhals.at/t737877,6314520.html#6314520</link>
      <description>Hallo&lt;br&gt;&lt;br&gt;Ich melde mich mal wieder mit einem Problem an dem ich derzeit scheitere. Ich habe folgende Datenstruktur:&lt;br&gt;&lt;pre&gt;&lt;br&gt;Table: ARTIKEL&lt;br&gt;ARTIKEL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&lt;br&gt;100-1001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Produkt1&lt;br&gt;100-1002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Produkt2&lt;br&gt;&lt;br&gt;Table: ARTIKELLIEFERANT&lt;br&gt;ARTIKEL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIEFERANTNAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LIEFERANTBESTNR&lt;br&gt;100-1001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DiTech&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0815&lt;br&gt;100-1001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E-Tec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4711&lt;br&gt;100-1001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Amazon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1112&lt;br&gt;100-1002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Teufel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A012&lt;br&gt;100-1002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hofer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8273&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;Was ich nun gerne hätte ist folgendes:&lt;br&gt;&lt;pre&gt;&lt;br&gt;ARTIKEL&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIEF1&amp;nbsp;&amp;nbsp; LIEFNR1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIEF2&amp;nbsp;&amp;nbsp;LIEFNR2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIEF3&amp;nbsp;&amp;nbsp;LIEFNR3&lt;br&gt;100-1001&amp;nbsp;&amp;nbsp;Produkt1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DiTech&amp;nbsp;&amp;nbsp;0815&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E-Tec&amp;nbsp;&amp;nbsp;4711&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Amazon 1112&lt;br&gt;100-1002&amp;nbsp;&amp;nbsp;Produkt2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Teufel&amp;nbsp;&amp;nbsp;A012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hofer&amp;nbsp;&amp;nbsp;8273&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL&amp;nbsp;&amp;nbsp; NULL&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;Dabei kommen maximal 3 Zeilen zu einem "Artikel" vor, sollten es mehr sein -&gt; irrelevant.&lt;br&gt;&lt;br&gt;Irgendwie komme ich bei der Fragestellung nicht ganz auf einen grünen Zweig. Versucht hätte ich es mittels PIVOT aber entweder es geht damit nicht oder ich habe mit zu dumm angestellt. &lt;br&gt;&lt;br&gt;Achja, ich würde das ganze für viele Artikel in einer View benötigen, d.h. ich weiss nicht ob eine Lösung evtl. mittels Cursor hier sinnvoll wäre?&lt;br&gt;&lt;br&gt;SQL Server wäre ein 2005er wenn das relevant ist &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Danke mal im Voraus an die Spezialisten hier &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Thu, 20 Jan 2011 20:36:54 GMT</pubDate>
      <guid>http://forum.geizhals.at/t737877,6314520.html#6314520</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2011-01-20T20:36:54Z</dc:date>
    </item>
  </channel>
</rss>
