Grinskeks Geschrieben 1. Juli 2009 Teilen Geschrieben 1. Juli 2009 Hallo Forum, zur Zeit beschäftigt mich folgendes Problem: Ich habe eine Tabelle Artikel mit 10 Preisen (VK1 - VK10) und einer Artikelnummer. Jetzt möchte ich daraus eine View machen, die mir für jeden Preis einen Datensatz in der Art Artikelnummer | VK1 macht. Also aus Artikelnummer | VK1 | Vk2 | ....|VK10 in einer Zeile sollen in der View Artikelnummer | VK1 Artikelnummer | VK2 ............ Artikelnummer | VK10 werden. Kann mir jemand einen Tip geben, wie ich das hinbekomme? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 1. Juli 2009 Teilen Geschrieben 1. Juli 2009 Du kannst über einen Union und einzelne Selects jede einzelne Spalte abfragen, was ich aber etwas unschön finde. Ich würde da zu einem Pivot raten. Für MS SQL habe ich auf die Schnelle das hier gefunden Understanding SQL 2005's new PIVOT clause HTH Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
delen Geschrieben 1. Juli 2009 Teilen Geschrieben 1. Juli 2009 Pivot Tabellen (Teil 1 - Einführung) zwar nicht ganz aktuell. sollte sich dennoch umsetzten lassen, und ist auf deutsch. grüße delen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Grinskeks Geschrieben 2. Juli 2009 Autor Teilen Geschrieben 2. Juli 2009 Hallo und Danke für die Tips. Ich habs zwischenzeitlich mathematisch gelöst und zwar über Union. Morgen kann ich das fertige SQL Script ja mal hochladen. Nochmals danke für die Tips mit den Pivot Tabellen: Das Tutorial habe ich mir mal gleich gebookmarkt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 2. Juli 2009 Teilen Geschrieben 2. Juli 2009 Hallo und Danke für die Tips. Ich habs zwischenzeitlich mathematisch gelöst und zwar über Union. Was ist daran mathematisch? Vielleicht dass Du Mengen verbindest, aber es ist weit hergeholt. Ich kann Dir nur dringend den Rat zu dem Pivot geben, denn der Union muss eben einige Selects ausführen und unter Umständen hast Du keine Eindeutigkeit mehr für jeden Datensatz Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Grinskeks Geschrieben 3. Juli 2009 Autor Teilen Geschrieben 3. Juli 2009 Ich habe es über UNIONS gelöst - Relationenalgebra halt. In der Form: r È s := {t ÃŽ Tup (X) | t ÃŽ r Ú t ÃŽ s } Die Eindeutigkeit ist immer gegeben und falls die Performance Probleme bereiten wird, kann ich die View immer noch optimieren. Das Problem sehe ich als gelöst an und jetzt kann ich mich den nächsten Problemen widmen ;-) Hier ein Teil der View: CREATE View v_Artikelverkaufspreise as Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk1 as Preis,'Bezeichnung'='1' FROM dbo.Artikel where Artikel.Preis_Vk1 >0 union Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk2,'Bezeichnung'='2' FROM dbo.Artikel where Artikel.Preis_Vk2 >0 union Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk3,'Bezeichnung'='3' FROM dbo.Artikel where Artikel.Preis_Vk3 >0 union Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk4,'Bezeichnung'='4' FROM dbo.Artikel where Artikel.Preis_Vk4 >0 union Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk5,'Bezeichnung'='5' FROM dbo.Artikel where Artikel.Preis_Vk5 >0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 3. Juli 2009 Teilen Geschrieben 3. Juli 2009 und falls die Performance Probleme bereiten wird Die erste Möglichkeit wäre, dass Du UNION durch UNION ALL ersetzt, das ganze als Subselect schreibst und dann im übergeordneten SELECT per DISTINCT einmalig eindampfst. Momentan machst Du das nämlich 4 mal. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.