新手的一个问题:关于select查询的

wwy830916 2005-03-23 11:51:02
我的表有下面几个字段:
ID 流水号
BookSum 卖的书的总数(一天)
BookID 书的ID号
WeekID 星期几(用1,2,3,4,5,6,7表示,1为Monday,2为...)
ClientID 客户ID
剩下的字段无关紧要.

我现在要做的是: 客户一周内每天购买一本书的数量

用SQL查出如下表(倒...不会画表):
ClientID BookID Sunday Monday Tuesday Wednesday Thursday Friday Saturday

...全文
109 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwy830916 2005-03-23
  • 打赏
  • 举报
回复
还有别的方法吗?
jinjazz 2005-03-23
  • 打赏
  • 举报
回复
交叉表

--建立测试环境
Create Table 表(year varchar(10),name varchar(10),value varchar(10))
--插入数据
insert into 表
select '2002','a','1' union
select '2002','b','4' union
select '2002','c','5' union
select '2003','a','7' union
select '2003','b','5' union
select '2003','c','4' union
select '2004','a','4'
select * from 表
--测试语句
DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT name'
SELECT @SQL= @SQL+
',sum(CASE WHEN year = ''' + year + ''' THEN value else 0 END) [' + year + ']'
FROM (SELECT DISTINCT year FROM 表) A
SET @SQL=@SQL+' FROM 表 GROUP BY name'
exec (@SQL)


--删除测试环境
Drop Table 表
/*
name 2002 2003 2004
a 1 7 4
b 4 5 0
c 5 4 0

*/
menong 2005-03-23
  • 打赏
  • 举报
回复

select ClientID,BookID, sum(Sunday) as Sunday...
from (
select ClientID,BookID,Sunday=case when WeekID=7 then BookSum else 0 end,
....
from table
) a
group by ClientID,BookID
wwy830916 2005-03-23
  • 打赏
  • 举报
回复
能把
--测试语句
写一下吗?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧