2013-10-24 3 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 
Смежные вопросы