Hansen 10 Geschrieben 11. Februar 2011 Melden Teilen Geschrieben 11. Februar 2011 (bearbeitet) Hallo zusammen, gibt es inzwischen eine möglich mit SQL einen COUNT über mehrere Spalten zu fahren? Wir setzten SQL Server 2008 ein. Folgendes Problem: Ich habe eine Temporäre Tabelle mit folgenden Werten: siehe Anhang1 Ich brauche einen Abfrage die mir folgendes Ergebnis liefert: siehe Anhang2 Versucht habe ich es bereits folgendermaßen: Select LeftSide As Messwert, COUNT (LeftSide) As LeftSide FROM #MESSKANTEN Group by LeftSide Order by Messwert Damit bekomme ich aber nur die gemessenen Werte der linken Seite. Ich denke ich muss erst mal einen unter select machen der mir alle gemessen Werte gruppiert Liefert. Kann mir hierbei jemand helfen? Viele Grüße Hansen bearbeitet 11. Februar 2011 von Hansen Zitieren Link zu diesem Kommentar
MisterH 10 Geschrieben 11. Februar 2011 Melden Teilen Geschrieben 11. Februar 2011 Hi, das ist das tolle an so einem Forum - da wird man doch gleich im Ehrgeiz gepackt, sich damit auseinanderzusetzen. Da ich bislang noch nichts mit PIVOT / UNPIVOT unternommen habe, dein Problem aber in diese Richtung zeigt, habe ich ein wenig getestet und folgende Lösung gefunden. Du musst zunächst dafür sorgen, dass du die einzelnen Messwerte als eigene Spalte bekommst und hinter jedem Messwert erkennst, aus welcher Spalte dieser Messwert stammt. Dies tut der UNPIVOT für dich. Nun hast du eine schöne Liste mit Messwerten und den entsprechenden Namen des Messfühlers / der Quellspalte. Mittels einem PIVOT kannst du das ganze nun wieder inkl. deinem Count in eine Tabelle umformen, wobei deine Namen der Quellspalten wieder zur Spaltenbezeichnung werden. Codiert schaut das ganze so aus: SELECT WERT AS ' ',TopSide,BottomSide,RightSide,LeftSide FROM (SELECT WERT,Spalte FROM (SELECT TopSide ,BottomSide ,RightSide ,LeftSide FROM #MESSKANTEN) SourceTbl UNPIVOT (WERT FOR Spalte in (TopSide,BottomSide,RightSide,LeftSide)) UnpivotTbl) SourceTblPivot PIVOT ( COUNT(Spalte) FOR Spalte IN ([TopSide],[bottomSide],[RightSide],[LeftSide]) ) PivotTbl Ich bin aber sehr gespannt darauf, ob es hier ggf. einfachere Lösungen gibt. Denn wie heißt es doch so schön - "da sieht man den Wald vor lauter Bäumen manchmal nicht mehr". Viele Grüße! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.