这个表如何创建?现在有一张客户表和一张产品表.
这是一个客户历来的购物情况,标出来的是已经购买的商品,按季度来分的,购物车中有未购买的商品。
请大家帮帮小弟,谢谢!
[此贴子已经被作者于2007-11-12 19:14:51编辑过]
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 (1,'CPU','bc-cn')
insert into 产品表 values(2,'显卡','bc-cn')
insert into 产品表 values(3,'内存','bc-cn')
insert into 产品表 values(4,'硬盘','bc-cn')
insert into 产品表 values(5,'主板','bc-cn')
insert into 产品表 values(6,'光驱','bc-cn')
create table 订单表(
客户ID int,
产品ID int,
购买日期 datetime
)
insert into 订单表 values(1,2,'2007-2-20')
insert into 订单表 values(1,5,'2007-3-20')
insert into 订单表 values(4,1,'2007-4-20')
insert into 订单表 values(4,3,'2007-6-20')
insert into 订单表 values(4,4,'2007-7-20')
--假设你现在有这些表.数据..
--现在查询统计.
declare @sql varchar(8000),@head varchar(4000)
set @sql='select 购买日期=convert(char(10),购买日期,120)'
select @sql=@sql+',sum(case when 产品名='+quotename(产品名,'''')+' then 1 else 0 end)'+quotename(产品名)
from 产品表 group by 产品名
set @sql=@sql+' from 订单表,产品表 where 订单表.产品ID=产品表.产品ID group by 购买日期'
exec (@sql)
drop table 客户表,产品表,订单表
--查询结果..
/*
购买日期 CPU 光驱 内存 显卡 硬盘 主板
---------- ----------- ----------- ----------- ----------- ----------- -----------
2007-02-20 0 0 0 1 0 0
2007-03-20 0 0 0 0 0 1
2007-04-20 1 0 0 0 0 0
2007-06-20 0 0 1 0 0 0
2007-07-20 0 0 0 0 1 0
*/
做了个简单示例.