0

我有一张桌子叫NewDemo

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

给我一些解决方案.../谢谢大家

4

4 回答 4

2

在 sql-server :: 试试这个

select * from [dbo].[2]
pivot
(
max(value)
for condition in([amount],[quantity]) 
)as piv order by id
于 2013-10-24T12:44:58.667 回答
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
于 2013-10-24T12:22:47.753 回答
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
于 2013-10-24T12:25:43.190 回答
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
于 2013-10-25T02:34:33.247 回答