Foxtable(狐表)用户栏目专家坐堂 → 生成的SQL语句出错,无法继续统计


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

主题:生成的SQL语句出错,无法继续统计

美女呀,离线,留言给我吧!
tina2012
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
生成的SQL语句出错,无法继续统计  发帖心情 Post By:2014/11/12 14:17:00 [只看该作者]

在命令窗口执行以下代码出错,调试也没有发现问题,怎么回事


Dim b As New SQLGroupTableBuilder("统计表1","Sales_Order_List")

b.ConnectionName = "CRM2014"

b.AddTable("Sales_Order_Product","OrderId","Sales_Order_List","Id")

b.AddTable("Sales_Order_Product","ProductId","Sales_Product_List","Id")

b.AddTable("Sales_Order_List","CustomerId","Customer_List","Id")

b.Groups.AddDef("{Sales_Product_List}.Name")

b.Groups.AddDef("{Customer_List}.Name")

b.Groups.AddDef("SubmitDate")

b.Groups.AddDef("SubmitUserName")

b.Totals.AddDef("已交数量")

b.Build   '生成统计表

MainTable = Tables("统计表1")


错误提示“生成的SQL语句出错,无法继续统计



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 14:23:00 [只看该作者]

 例子发上来测试。

 回到顶部
美女呀,离线,留言给我吧!
tina2012
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/12 14:46:00 [只看该作者]

先帮着看一下吧  是基于公司数据库做的,稍后做例子

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 14:54:00 [只看该作者]

 代码看不出问题

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/11/12 14:59:00 [只看该作者]

“已交数量”是表达式列吗?
表达式列不能直接这样引用的,需要用Addexp,例如:


Dim b As New SQLGroupTableBuilder("统计表1","订单")
b.Totals.AddExp("金额","数量 * 单价 * (1-折扣)")


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/12 16:29:00 [只看该作者]

不是表达式列,是不是我设置的不对,我是把生成的统计表直接生成到table控件上去。属性怎么设置

 


此主题相关图片如下:4.jpg
按此在新窗口浏览图片

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 16:31:00 [只看该作者]

不是,这个问题。具体请给例子

 

 参考

 

http://www.foxtable.com/help/topics/1909.htm

 


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/12 17:53:00 [只看该作者]

我测试了一下,最简单的代码,从两个表里提取数据进行统计,也是弹出同样的错误,公司的数据库是基于SQLserver2005的,是不是数据库里的表有什么特殊要求

Dim b As New SQLGroupTableBuilder("统计表2","Sales_Order_Product")            
b.AddTable("Sales_Order_Product","OrderId","Sales_Order_List","Id")         '表Sales_Order_Product"和表"OrderId","Sales_Order_List"是关联的
b.Groups.AddDef("ProductId")              'ProductId是表Sales_Order_Product中的列,SubmitDate是表Sales_Order_List中的列
b.Groups.AddDef("SubmitDate")           'SubmitDate是表Sales_Order_List中的列
b.Totals.AddDef("Amount")                  'Amount是表Sales_Order_Product中的列
b.Build                                               '生成统计表
MainTable = Tables("统计表2")               '打开生成的统计表


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 17:54:00 [只看该作者]

 你设置数据源了吗?

 

 

SQLGroupTableBuilder包括以下属性:

 

ConnectionName:  指定数据源名称,如果省略,表示使用内部数据表。


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/13 11:15:00 [只看该作者]

谢谢,调试好了,忘记设置数据源了,


但是还有个问题,只要我添加Sales_Product_List这个统计表,就会出错,错误提示生成的SQL语句出错,无法继续统计”中

b.AddTable("Sales_Order_Product","ProductId","Sales_Product_List","Id")

也就是如下代码:

Dim b As New SQLGroupTableBuilder("统计表2","Sales_Order_Product")       

b.ConnectionName = "CRM2014"   

b.AddTable("Sales_Order_Product","OrderId","Sales_Order_List","Id")   'Sales_Order_Product"和表"OrderId","Sales_Order_List"是关联的

b.AddTable("Sales_Order_Product","ProductId","Sales_Product_List","Id")

b.Groups.AddDef("ProductId")            'ProductId是表Sales_Order_Product中的列,SubmitDate是表Sales_Order_List中的列

b.Groups.AddDef("SubmitDate")           'SubmitDate是表Sales_Order_List中的列

b.Totals.AddDef("Amount")                'Amount是表Sales_Order_Product中的列

b.Build   '生成统计表

MainTable = Tables("统计表2")  '打开生成的统计表


添加其他表就可以,例如

b.AddTable("Sales_Order_List","CustomerId","Customer_List","Id")

就是添加Sales_Product_List这个不可以,确认了关联列也没错


 回到顶部
总数 28 1 2 3 下一页