以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- foxtable 不支持sql2005的pivot吗(上传附件) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=32162) |
||||
-- 作者:jspta -- 发布时间:2013/4/26 17:50:00 -- foxtable 不支持sql2005的pivot吗(上传附件) 使用pivot时,提示FROM 子句语法错误
请查看附件实例,基础表——表A,效果表——统计表1 如何用SQL语句编写,求教
[此贴子已经被作者于2013-4-27 9:30:47编辑过]
|
||||
-- 作者:Bin -- 发布时间:2013/4/26 17:51:00 -- SQL 语句错了吧. |
||||
-- 作者:jspta -- 发布时间:2013/4/26 18:03:00 -- 以下是引用Bin在2013-4-26 17:51:00的发言:
SQL 语句错了吧. 不知道,晚上回家发例子。 |
||||
-- 作者:jspta -- 发布时间:2013/4/27 9:20:00 -- 求高手指导下,最好用SQL语句 或用SQLCrossTableBuilder |
||||
-- 作者:Bin -- 发布时间:2013/4/27 9:28:00 -- 你要统计什么效果,你倒是说一下啊. |
||||
-- 作者:jspta -- 发布时间:2013/4/27 9:32:00 -- 以下是引用Bin在2013-4-27 9:28:00的发言:
你要统计什么效果,你倒是说一下啊. 失误,关闭foxtable后,统计表就消失了,抱歉,已经重新弄过 |
||||
-- 作者: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 [姓名]
|
||||
-- 作者: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")
|
||||
-- 作者:jspta -- 发布时间: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 -- 发布时间: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统计语句有问题(不是这个表),目前还没找到错误原因 |