if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tmp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tmp]
GO
select distinct 类别 into tmp from 客户类别
go
declare @sql nvarchar(4000)
select @sql='select 客户'
select @sql=@sql+',max((case 类别 when '''+tmp.类别+''' then 类别 else '''' end))' from tmp
select @sql=@sql+' from 客户类别 group by 客户'
exec(@sql)
上面写成存储过程可以运行。但我是用的ACCESS数据库,且要在VB里运行,请问各位高手怎么实现?
SELECT a.客户名,
ISNULL((SELECT TOP 1 类别 FROM table1
WHERE 客户名=a.客户名 AND 类别='类别A'),' ')+' '+
ISNULL((SELECT TOP 1 类别 FROM table1
WHERE 客户名=a.客户名 AND 类别='类别B'),' ')+' '+
ISNULL((SELECT TOP 1 类别 FROM table1
WHERE 客户名=a.客户名 AND 类别='类别C'),' ')+' '+
ISNULL((SELECT TOP 1 类别 FROM table1
WHERE 客户名=a.客户名 AND 类别='类别D'),' ')
FROM table1 a
group by a.客户名