create table 客户表(
客户ID int,
客户姓名 varchar(50)
)
insert into 客户表 values(1,'张三')
insert into 客户表 values(2,'李明')
insert into 客户表 values(3,'小强')
insert into 客户表 values(4,'小花')
insert into 客户表 values(5,'小明')
insert into 客户表 values(6,'小李')
create table 产品表(
产品ID int,
产品名 varchar(50),
厂商 varchar(128)
)
insert into 产品表 values (1001,'CPU','bc-cn')
insert into 产品表 values(1002,'显卡','bc-cn')
insert into 产品表 values(1003,'内存','bc-cn')
insert into 产品表 values(1004,'硬盘','bc-cn')
insert into 产品表 values(1005,'主板','bc-cn')
insert into 产品表 values(1006,'光驱','bc-cn')
create table 订单表(
客户ID int,
产品ID int,
购买日期 datetime
)
insert into 订单表 values(1,1002,'2007-2-20')
insert into 订单表 values(1,1005,'2007-3-20')
insert into 订单表 values(4,1001,'2007-4-20')
insert into 订单表 values(4,1003,'2007-6-20')
insert into 订单表 values(4,1004,'2007-7-20')
--假设你现在有这些表.数据..
--现在查询统计.
declare @sql varchar(8000),@head varchar(4000)
set @sql='select 购买日期=convert(char(10),购买日期,120)'
select @sql=@sql+',max(case when 产品名='+quotename(产品名,'''')+' then 产品表.产品ID end)'+quotename(产品名)
from 产品表 group by 产品名
set @sql=@sql+' from 订单表,产品表 where 订单表.产品ID=产品表.产品ID group by 购买日期'
exec (@sql)
drop table 客户表,产品表,订单表
我的msn: myfend@