2017-02-15 2 views
0

Ich habe eine Tabelle mit diesen Daten:SQL Server Pivot und Merge-Spalte möglich?

| RESULT |  TYPE | NAME | 
+---------+-------------+-----------+ 
| 101.96 | Indep Chk | Calcium | 
| 101.96 | Control | Calcium | 
| <5.00 | Meth Blank | Calcium | 
| 1  | Duplicate | Calcium |  

Ich versuche, das folgende Ergebnis ohne Erfolg zu erhalten.

gewünschte Ausgabe:

| [Indep Chk] | Control | Duplicate | [Meth Blank] | Name  | 
| 101.96  | 101.96 | 1  | <5.00  | Calcium | 

Wie kann ich dies tun?

Dank

+0

ich vergaß zu erwähnen, dass mein Tisch verschiedenen Komponenten haben (Name und Ergebnis). Die Spalte "TYPE" ändert sich nie für jede Komponente. Zum Beispiel könnte ich Kalzium, Zink, Magnesium und so weiter haben. Jede dieser Komponenten wird immer haben ("Indep Chk", Kontrolle, Duplizieren, "Meth Blank") aber unterschiedliches Ergebnis. – Alberto

Antwort

0

Wenn ich nicht diese falsch, ist dies eine einfache PIVOT:

DECLARE @Dummy TABLE(RESULT VARCHAR(100),[TYPE] VARCHAR(100),NAME VARCHAR(100)); 
INSERT INTO @Dummy VALUES 
('101.96','Indep Chk','Calcium') 
,('101.96','Control','Calcium') 
,('<5.00','Meth Blank','Calcium') 
,('1','Duplicate','Calcium') 
,('a','Indep Chk','Other') 
,('b','Control','Other') 
,('c','Meth Blank','Other') 
,('d','Duplicate','Other'); 

SELECT p.* 
FROM 
(
    SELECT * 
    FROM @Dummy 
) AS tbl 
PIVOT 
(
    MIN(RESULT) FOR [TYPE] IN ([Indep Chk],[Control],Duplicate,[Meth Blank]) 
) AS p; 

Das Ergebnis

NAME Indep Chk Control Duplicate Meth Blank 
Calcium 101.96  101.96 1   <5.00 
Other a   b  d   c 
+0

Danke Shnugo, es könnte funktionieren, aber mein Problem ist, dass ich verschiedene Komponenten (Name und Ergebnis) in meiner Tabelle habe. Die Typspalte ändert sich nie. – Alberto

+0

@Alberto Die gleiche Abfrage funktioniert auch mit mehreren Names. Siehe mein Update. – Shnugo

+0

Es ist wahr :) vielen Dank !!! – Alberto