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


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

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

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


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

 注意,表名、列名一定不能错。

 

 如果还不行的话,就把两个表弄出来,发上来测试。


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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列相同的,但是没有关联此列。


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


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

name 改成 [name] 看看

 

不行,就上传例子


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

 没有这个表 Sales_Product_List

 

 改成 Product_List

 


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

b.ConnectionName = "Sales"  

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","Product_List","Id")

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

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

b.Groups.AddDef("ProductName")

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

 

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

b.Build   '生成统计表

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


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")

 

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


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


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

 可能复杂的情况无法处理,你用sql语句吧

 

select ProductId, e.Name, f.Name, year(SubmitDate), sum(Amount) from (select * from (select * from {Sales_Order_Product} a inner join {Sales_Order_List} b on a.Orderid = b.id) c inner join {Product_List} d on c.ProductId = d.id) e inner join {Customer_List} f on e.Customerid = f.id group by ProductId, e.Name, f.Name, year(SubmitDate)


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