Foxtable(狐表)用户栏目专家坐堂 → foxtable 不支持sql2005的pivot吗(上传附件)


  共有5610人关注过本帖树形打印复制链接

主题:foxtable 不支持sql2005的pivot吗(上传附件)

帅哥哟,离线,有人找我吗?
jspta
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
foxtable 不支持sql2005的pivot吗(上传附件)  发帖心情 Post By:2013/4/26 17:50:00 [只看该作者]

使用pivot时,提示FROM 子句语法错误

 

请查看附件实例,基础表——表A,效果表——统计表1

如何用SQL语句编写,求教

 

 


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.foxdb

[此贴子已经被作者于2013-4-27 9:30:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/26 17:51:00 [只看该作者]

SQL 语句错了吧.

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/4/26 18:03:00 [只看该作者]

以下是引用Bin在2013-4-26 17:51:00的发言:
SQL 语句错了吧.

不知道,晚上回家发例子。


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/4/27 9:20:00 [只看该作者]

求高手指导下,最好用SQL语句

或用SQLCrossTableBuilder


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/27 9:28:00 [只看该作者]

你要统计什么效果,你倒是说一下啊.

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/4/27 9:32:00 [只看该作者]

以下是引用Bin在2013-4-27 9:28:00的发言:
你要统计什么效果,你倒是说一下啊.

失误,关闭foxtable后,统计表就消失了,抱歉,已经重新弄过


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/27 9:46:00 [只看该作者]

select [姓名], count(case when [类别]='语文' then 1 end) as 语文,
 count(case when [类别]='数学' then 1 end) as 数学,
count(case when [类别]='英语' then 1 end) as 英语,
count(case when [类别]='化学' then 1 end) as 化学
 from  {表A}  group by [姓名]

 回到顶部
帅哥哟,离线,有人找我吗?
don
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/4/27 11:10:00 [只看该作者]

Dim b As New SQLCrossTableBuilder("统计表1","表A")
b.HGroups.AddDef("姓名") 
b.VGroups.AddDef("类别") 
b.Totals.AddDef("类别", AggregateEnum.count) 
b.Build 
MainTable = Tables("统计表1") 

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/4/27 12:48:00 [只看该作者]

以下是引用Bin在2013-4-27 9:46:00的发言:
select [姓名], count(case when [类别]='语文' then 1 end) as 语文,
 count(case when [类别]='数学' then 1 end) as 数学,
count(case when [类别]='英语' then 1 end) as 英语,
count(case when [类别]='化学' then 1 end) as 化学
 from  {表A}  group by [姓名]

谢谢!这是常规代码,pivot的方法实在不能用,那就只能用这个了。


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/4/27 13:58:00 [只看该作者]

以下是引用don在2013-4-27 11:10:00的发言:
Dim b As New SQLCrossTableBuilder("统计表1","表A")
b.HGroups.AddDef("姓名") 
b.VGroups.AddDef("类别") 
b.Totals.AddDef("类别", AggregateEnum.count) 
b.Build 
MainTable = Tables("统计表1") 

这个表使用这个代码不会有问题,另一个表使用就会出错,说SQL统计语句有问题(不是这个表),目前还没找到错误原因


 回到顶部
总数 14 1 2 下一页