Reputation: 1
I have One table called 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
But I want to Display like Below
ID Name Amount Quantity
-- ---- ------ --------
1 Book 90/- 900
2 Pencil 5/- 280
3 Eraser 7/- 200
Get me some solutions.../ Thank You All
Upvotes: 0
Views: 117
Reputation: 335
hi I think this will help you
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
Upvotes: 0
Reputation: 2507
You can do something like this.
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
Upvotes: 0
Reputation: 7189
in sql-server :: try this
select * from [dbo].[2]
pivot
(
max(value)
for condition in([amount],[quantity])
)as piv order by id
Upvotes: 2
Reputation: 188
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
Upvotes: 0