以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  foxtable 不支持sql2005的pivot吗(上传附件)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=32162)

--  作者:jspta
--  发布时间:2013/4/26 17:50:00
--  foxtable 不支持sql2005的pivot吗(上传附件)

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

 

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

如何用SQL语句编写,求教

 

 


 

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

[此贴子已经被作者于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统计语句有问题(不是这个表),目前还没找到错误原因