以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]查询、统计问题?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=61552)

--  作者:shenhq
--  发布时间:2014/12/14 20:48:00
--  [求助]查询、统计问题?

感觉查询统计很难啊?看了几天的帮助,觉得进展不大,故拿个例子,求高手解答,以便能举一反三!!

 

 

A表字段如下 :姓名,项目编号,档案编号


 

B  表字段如下:项目编号,档案编号,面积,房屋补偿金额

C表 字段如下:项目编号,档案编号,装修补偿金额



 

A通过 “项目编号”和  “档案编号“ 这两个字段 与 B 、C关联,一对多


 

想通过查询统计,生成这样的报表:

第一种

姓名

面积

房屋补偿金额

装修补偿金额

合计

张三



sum()
sum()

李四





王五





……










总计






第二种

姓名

面积

房屋补偿金额

装修补偿金额

张三

明细行

明细行

明细行

张三

………

……….

…………

张三




张三




小计




李四




李四




李四




李四




小计




…….




…….




……




小计





[此贴子已经被作者于2014-12-14 20:49:14编辑过]

--  作者:有点甜
--  发布时间:2014/12/14 20:50:00
--  

 很简单,先生成查询表,然后再分组或者汇总统计。

 

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

 

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

 


--  作者:shenhq
--  发布时间:2014/12/14 20:57:00
--  

数据是MSsql,B表和C表的行数现有几万条,数据已经初步动态加载,想通过代码统计后台数据生成table,以便使用EXcel报表,现在就是卡在这里了,

对统计查询这一章看不太懂,能否针对上例贴上几段代码,以便我进一步学习?


--  作者:有点甜
--  发布时间:2014/12/14 21:02:00
--  

  看这里,先生成查询表。就是把几个表的数据连接起来。

 

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


--  作者:有点甜
--  发布时间:2014/12/14 21:02:00
--  
 再不会,就请上传对应例子
--  作者:shenhq
--  发布时间:2014/12/14 21:28:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:捕获2.png
图片点击可在新窗口打开查看

第一个查询表成功,可是第二个为什么会报错呢?

以下是生成的SQL语句

Select  权利人,sum(补偿金额) As [装修补偿],sum(面积) As [面积],sum(评估价格) As [房屋补偿] From ({装修明细}
Inner JOIN {权利人名单} ON {权利人名单}.[项目编号] = {装修明细}.[项目编号] And {权利人名单}.[档案编号] = {装修明细}.[档案编号])
Inner JOIN {权利人名单} ON {权利人名单}.[项目编号] = {农房}.[项目编号] And {权利人名单}.[档案编号] = {农房}.[档案编号]
Group By 权利人

[此贴子已经被作者于2014-12-14 21:30:54编辑过]

--  作者:有点甜
--  发布时间:2014/12/14 21:34:00
--  

 相同的列名,要指定表名。

 

 比如 {权利人名单}.权利人


--  作者:shenhq
--  发布时间:2014/12/14 22:39:00
--  

查询设计器自动会加上{表名}的啊,况且 "权利人" 子表里没有。

????


--  作者:有点甜
--  发布时间:2014/12/14 22:43:00
--  
 

Select  {权利人名单}.权利人,sum(补偿金额) As [装修补偿],sum(面积) As [面积],sum(评估价格) As [房屋补偿] From ({装修明细}
Inner JOIN {权利人名单} ON {权利人名单}.[项目编号] = {装修明细}.[项目编号] And {权利人名单}.[档案编号] = {装修明细}.[档案编号])
Inner JOIN {权利人名单} ON {权利人名单}.[项目编号] = {农房}.[项目编号] And {权利人名单}.[档案编号] = {农房}.[档案编号]
Group By {权利人名单} .权利人


--  作者:shenhq
--  发布时间:2014/12/14 22:52:00
--  

还是跟上图一样报错。

 

Select  {权利人名单}.权利人,sum(补偿金额) As [装修补偿],sum(面积) As [面积],sum(评估价格) As [房屋补偿] From ({装修明细}
Inner JOIN {权利人名单} ON {权利人名单}.[项目编号] = {装修明细}.[项目编号] And {权利人名单}.[档案编号] = {装修明细}.[档案编号])
Inner JOIN {权利人名单} ON {权利人名单}.[项目编号] = {农房}.[项目编号] And {权利人名单}.[档案编号] = {农房}.[档案编号]
Group By {权利人名单} .权利人

 

蓝字在 装修明细表中,绿字在农房表中,

感觉是不是下面2个 Inner JOIN 不对啊?