Jump to content

TSQL Count mehrere Spalten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

post-59901-13567389957604_thumb.jpg

post-59901-13567389957802_thumb.jpg

bearbeitet von Hansen
Link zu diesem Kommentar

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!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...