Proleme bei Pivot

Coxey

Neuer Benutzer
Beiträge
1
Hallo, Fachleute und Könner sowie alle Interessenten.

ich bin neu in diesem Forum und hoffe sehr, dass mir bei meiner Problemstellung geholfen werden kann.

Meine Voraussetzungen:
MS SQL - Server 2005 - 2012
Querybuilder = Flyspeed OueryBuilder
SQL Kenntnisse = mittelmäßig aber lernwillig (ich weiß wie ein einfaches Pivot erstellt wird)


[SQL-Statment:]

Code:
Select
MDT.MandantenNummer As MdtNr,
Replace(Replace(Replace(Replace(Replace(Kommunikation.Nummer, '/', ''), '-',''), '+', '00'), ' ', ''), 'http:', '') As Medium,
Replace(Kommunikation.Bemerkung, ';', ',') As Bemerkung,
ZuordnungBemerkung =
    Case
      When Row_Number() Over (Partition By MDT.MandantenNummer,Kommunikation.Medium Order By Kommunikation.Reihenfolge, Kommunikation.Medium Desc) = 1 And Kommunikation.Medium = 1 Then 'MD8111'
      When Row_Number() Over (Partition By MDT.MandantenNummer,Kommunikation.Medium Order By Kommunikation.Reihenfolge,Kommunikation.Medium Desc) = 2 And Kommunikation.Medium = 1 Then 'MD8121'
    End,
ZuordnungMedium =
    Case
      When Row_Number() Over (Partition By MDT.MandantenNummer,Kommunikation.Medium Order By Kommunikation.Reihenfolge,Kommunikation.Medium Desc) = 1 And Kommunikation.Medium = 1 Then 'MD8112'
      When Row_Number() Over (Partition By MDT.MandantenNummer,Kommunikation.Medium Order By Kommunikation.Reihenfolge,Kommunikation.Medium Desc) = 2 And Kommunikation.Medium = 1 Then 'MD8122'
    End
From
EODB.DB.u_sd_MDT As MDT
Left Outer Join
  (Select
    MDT.MandantId,
    ADT.AdressatId
  From EODB.DB.u_sd_MDT As MDT
  Inner Join
  EODB.DB.u_sd_BZGMDT As BZGMDT On BZGMDT.MandantId = MDT.MandantId
  Inner Join
  EODB.DB.u_sd_BZG As BZG On
  ((BZG.BeziehungId = BZGMDT.BeziehungId
    And MDT.MandantenTyp = 1
    And BZG.BeziehungArtId = 'S00001')
    Or
  (BZG.BeziehungId = BZGMDT.BeziehungId
  And MDT.MandantenTyp = 2
  And BZG.BeziehungArtId = 'S00003')
  Or
  (BZG.BeziehungId = BZGMDT.BeziehungId
  And MDT.MandantenTyp = 3
  And BZG.BeziehungArtId = 'S00003'))
Inner Join
EODB.DB.u_sd_ADT As ADT On ADT.AdressatId = BZG.IstAdressatId) As
Beziehung On Beziehung.MandantId = MDT.MandantId
Inner Join
EODB.DB.u_sd_KOMM Kommunikation On Kommunikation.AdressatId =
Beziehung.AdressatId
Where
  Replace(Replace(Replace(Replace(Replace(Kommunikation.Nummer, '/', ''), '-',''), '+', '00'), ' ', ''), 'http:', '') Is Not Null
Order By
  MDT.MandantenNummer
[/CODE]









[vorläufiges Ergebnis:]

MdtNr /Medium/Bemerkung /ZuordnungBemerkung/ZuordnungMedium
10000/01234-23455/TestNummer/MD8111/MD8112
10000/05437-87654/TestNummer2/MD8121/ MD8122
10002/0654-12345/Testnummer3/MD8111/MD8112
...........

Die Spalten "Medium" und "Bemerkung" sollen Pivotiert werden. Die Spalten "ZuordnungBemerkung" und "ZuordnungMedium" beinhalten die Header.

[gewünschtes Ergebnis:]

MdtNr/MD8111/MD8112/MD8121/MD8122/MD8131/MD8132 ................
10000/TestNummer/01234-23455/TestNummer2/05437-87654 ................
10002/Testnummer3/0654-12345 .............


Bei dieser Aufgabenstellung muss ich leider die Segel streichen.
Ich bin mir aber sicher, hier ein paar Lösungsansätze zu finden.

An alle die sich hier dran machen schon mal ein dickes Dankeschön!

Gruß Coxey
 
Werbung:
Zurück
Oben