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


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

主题:生成的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语句出错,无法继续统计



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


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

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

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


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

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

 


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

 回到顶部
美女呀,离线,留言给我吧!
tina2012
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")               '打开生成的统计表


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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这个不可以,确认了关联列也没错


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


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/13 11:35:00 [显示全部帖子]

添加3个表,只有最后一个不可以,出错提示只有最后一句代码

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

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

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


Sales_Order_Product和Sales_Order_List是只有关联列内容相同,其他列没有相同的

Sales_Order_ListCustomer_List也是只有关联列内容相同,其他列没有相同的

但是Sales_Order_Product和Sales_Product_List除了关联列相同,还有一列内容相同,就是ProductName和Name列相同的,但是没有关联此列。


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


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/14 13:50:00 [显示全部帖子]

附件是上传的例子,

 

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

b.C   

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

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

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

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

b.Groups.AddDef("SubmitDate", DateGroupEnum.Year, "年") '根据日期按年分组

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

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

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

b.Build   '生成统计表

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

 

只要有这句代码,就会出错,请帮忙解决,谢谢!!

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

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:chmhelp.zip


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


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/14 14:29:00 [显示全部帖子]

谢谢。做例子的时候表名写错了。还是有个疑问,现在没有错误了,但是统计不出结果,见附件。

 

 

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

b.C   

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

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

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

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

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

b.Groups.AddDef("SubmitDate", DateGroupEnum.Year, "年") '根据日期按年分组

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

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

b.Build   '生成统计表

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

 

如果加上这句代码就显示不出结果。

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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:chmhelp0.zip


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


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/14 14:56:00 [显示全部帖子]

首先,很感谢“有点甜”的帮忙。但是我还是有疑问,请帮忙解决,谢谢

 

b.Groups.AddDef("ProductName") 代替了下面这行代码:

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

我不想代替,是因为ProductName是表Sales_Order_Product中的列,{Sales_Product_List}.Name是表示表Product_List中的列,没有解决根本问题。说明表Sales_Product_List还是没有加为统计表。

而在原来的数据库中Sales_Order_Product中的ProductName列,没有内容。我使用了Foxtable软件开发,为了显示产品名称才加上的。

 

 


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


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/14 15:03:00 [显示全部帖子]

因为在我目前做的项目中,只要加入这行代码就提示错误,

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

 

而在我做的例子中虽让没有错误,但不能显示统计结果,我猜测应该是相同的原因。


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