2013-10-24 2 views
0

NewDemo이라는 테이블 하나가 있습니다.SQL 테이블 행을 열로 표시합니다.

ID Name  Condition Value 
-- ----  --------- ----- 
1 Book  Amount  90/- 
2 Pencil Amount  5/- 
3 Eraser Amount  7/- 
1 Book  Quantity 900 
2 Pencil Quantity 280 
3 Eraser Quantity 200 

는하지만

ID Name  Amount  Quantity 
-- ----  ------  -------- 
1  Book  90/-  900 
2  Pencil 5/-  280 
3  Eraser 7/-  200 

이 좀 솔루션을 받기 아래처럼 표시 할 .../ 당신이 이런 일을 할 수있는 모든

답변

0

감사드립니다.

SELECT A.ID, A.Name, A.Value AS 'Amount', B.Value AS 'Quantity' 
FROM (SELECT * FROM NewDemo WHERE Condition = 'Amount') AS A 
    JOIN (SELECT * FROM NewDemo WHERE Condition = 'Quantity') AS B 
    ON A.ID = B.ID 
0
SELECT a.ID, a.Name, a.Value as Amount, b.Value as Quantity FROM 
(SELECT ID, Name, Value FROM NewDemo WHERE Condition = 'Amount') a 
LEFT JOIN (SELECT ID, Name, Value FROM NewDemo WHERE Condition = 'Quantity') b 
on a.ID = b.ID 
2

SQL 서버에 ::이

select * from [dbo].[2] 
pivot 
(
max(value) 
for condition in([amount],[quantity]) 
)as piv order by id 
+0

도움이 될 것입니다 생각이 완벽하게 작동 시도! –

0

안녕하세요 나는이 당신에게

SELECT  ID, Name, MAX(DISTINCT CASE WHEN Condition = 'Amount' THEN Value END) AS Amount, MAX(DISTINCT CASE WHEN Condition = 'Quantity' THEN Value END) 
      AS Quantity 
FROM  dbo.TESTTABLE 
GROUP BY ID, Name