Click here to Skip to main content
15,896,207 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
using sql table
SQL
tabl1
=========================
name   1    2   3  4  5  
=========================
sekar  p
ramu   p
sekar      p
ramu       p
sekar          a
ramu           p
sekar              p
ramu               a
==========================

i want this type of table..
table2
=========================
name   1    2   3  4  5  
=========================
sekar  p   p   a   p    
ramu   p   p   p   a
=========================
Posted
Updated 18-Jun-15 1:59am
v2
Comments
CHill60 18-Jun-15 7:58am    
post the code that you are currently using. You probably need pivot

Try:
SQL
SELECT Name, MAX([1]), MAX([2]), MAX([3]), MAX([4]), MAX([5]) FROM Table1
GROUP BY Name
ORDER BY Name DESC
 
Share this answer
 
If the following will create and populate your table
SQL
create table table1
(
	name varchar(255),
	[1] char,
	[2] char,
	[3] char,
	[4] char,
	[5] char
)

insert into table1 values
('sekar','p',null, null, null, null),
('ramu', 'p',null, null, null, null),
('sekar',null, 'p', null, null, null),
('ramu',null, 'p', null, null, null),
('sekar',null, null, 'a', null, null),
('ramu',null, null, 'p', null, null),
('sekar',null,null, null, 'p', null),
('ramu',null, null, null,'a', null)
then this query will produce the results you want
SQL
select name, max(isnull([1],'')) as [1],max(isnull([2],'')) as [2], 
		max(isnull([3],'')) as [3], max([4]) as [4], max(isnull([5],'')) as [5] 
from table1
group by name
order by name desc
However, if your first table is the result of something like this
SQL
create table tabl1
(
	name varchar(255),
	num int,
	achar char(1)
)

insert into tabl1 values

('sekar',1,'p'),
('ramu',1,'p'),
('sekar',2,'p'),
('ramu',2,'p'),
('sekar',3,'a'),
('ramu',3,'p'),
('sekar',4,'p'),
('ramu',4,'a')
then this is what you need
SQL
SELECT name, isnull([1],'') as [1],isnull([2],'') as [2],
        isnull([3],'') as [3],isnull([4],'') as [4],isnull([5],'') as [5]
FROM (
    SELECT
        name, num, achar
    FROM tabl1
    where achar in ('a','p')
) as s
PIVOT
(
    max(achar)
    FOR num IN ([1],[2],[3],[4],[5])
)AS p
order by name desc
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900