设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: 鱼儿游游
打印 上一主题 下一主题

[查询] 求助 SQL求和问题

[复制链接]

点击这里给我发消息

21#
 楼主| 发表于 2011-10-2 09:46:43 | 只看该作者
本帖最后由 鱼儿游游 于 2011-10-2 09:56 编辑

{:soso_e179:} 多谢小宝斑竹,多谢了!

点击这里给我发消息

22#
 楼主| 发表于 2011-10-1 21:53:03 | 只看该作者
本帖最后由 鱼儿游游 于 2011-10-2 00:51 编辑

多谢各位的热心帮助,我已解决了这个问题,实现了一句SQL完成。

点击这里给我发消息

23#
发表于 2011-10-2 01:07:23 | 只看该作者
本帖最后由 t小宝 于 2011-10-2 01:11 编辑
鱼儿游游 发表于 2011-9-30 13:35
我的要求是这样的结果:
  1. PARAMETERS 年度 Short, 月份 Short;
  2. SELECT 本年本月合计.行业 AS 项目, 本年本月合计.金额之总计 AS 本年本月合计, 本年本月止累计.金额之总计 AS 本年本月止累计, 去年同期月合计.金额之总计 AS 去年同期月合计, 去年同期年累计.金额之总计 AS 去年同期年累计, nz([本年本月合计])-nz([去年同期月合计]) AS 月份对比_增减数,  Format([月份对比_增减数]/nz([本年本月合计]),"0.00%") AS [月份对比_增减%], nz([本年本月止累计])-nz([去年同期年累计]) AS 累计对比_增减数,  Format([累计对比_增减数]/nz([去年同期年累计]),"0.00%") AS [累计对比_增减%]
  3. FROM
  4. (SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
  5. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  6. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))
  7. GROUP BY A表.行业, A表.所在乡镇名
  8. UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
  9. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  10. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))
  11. GROUP BY A表.所在乡镇名
  12. UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
  13. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  14. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))
  15. GROUP BY A表.行业
  16. UNION ALL SELECT "0总计", "总    计", Sum(B表.金额) AS 金额之总计
  17. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  18. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))) AS 去年同期年累计
  19. RIGHT JOIN
  20. ((SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
  21. FROM B表 LEFT JOIN A表 ON B表.识别号 = A表.识别号
  22. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))
  23. GROUP BY A表.所在乡镇名, A表.行业
  24. UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
  25. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  26. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))
  27. GROUP BY A表.所在乡镇名
  28. UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
  29. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  30. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))
  31. GROUP BY A表.行业
  32. UNION ALL SELECT "0总计", "总    计", Sum(B表.金额) AS 金额之总计
  33. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  34. WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))) AS 去年同期月合计
  35. RIGHT JOIN
  36. ((SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
  37. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  38. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))
  39. GROUP BY A表.行业, A表.所在乡镇名
  40. UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
  41. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  42. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))
  43. GROUP BY A表.所在乡镇名
  44. UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
  45. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  46. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))
  47. GROUP BY A表.行业
  48. UNION ALL SELECT "0总计", "总    计", Sum(B表.金额) AS 金额之总计
  49. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  50. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))) AS 本年本月止累计
  51. RIGHT JOIN
  52. ((SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
  53. FROM B表 LEFT JOIN A表 ON B表.识别号 = A表.识别号
  54. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))
  55. GROUP BY A表.所在乡镇名, A表.行业
  56. UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
  57. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  58. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))
  59. GROUP BY A表.所在乡镇名
  60. UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
  61. FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
  62. WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))
  63. GROUP BY A表.行业
  64. UNION ALL SELECT "0总计", "总    计", Sum(金额) AS 金额之总计
  65. FROM B表 WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))) AS 本年本月合计
  66. RIGHT JOIN
  67. (SELECT 所在乡镇名, 行业 FROM A表 GROUP BY 所在乡镇名, 行业
  68. UNION ALL SELECT 所在乡镇名, 所在乡镇名 & "合计" FROM A表 GROUP BY 所在乡镇名
  69. UNION ALL SELECT 行业 & "合计", 行业 & "合计" FROM A表 GROUP BY 行业
  70. UNION ALL SELECT TOP 1 "0总计", "总    计" FROM A表 ) AS 名称
  71. ON
  72. (本年本月合计.行业 = 名称.行业) AND (本年本月合计.所在乡镇名 = 名称.所在乡镇名)) ON (本年本月止累计.行业 = 名称.行业) AND (本年本月止累计.所在乡镇名 = 名称.所在乡镇名)) ON (去年同期月合计.行业 = 名称.行业) AND (去年同期月合计.所在乡镇名 = 名称.所在乡镇名)) ON (去年同期年累计.行业 = 名称.行业) AND (去年同期年累计.所在乡镇名 = 名称.所在乡镇名)
  73. ORDER BY 名称.所在乡镇名;
复制代码

点击这里给我发消息

24#
 楼主| 发表于 2011-9-30 12:39:02 | 只看该作者
谢谢你,要是能一句SQL完成就就好了。
25#
发表于 2011-9-30 12:48:32 | 只看该作者
不知道你要汇总到什么程度,不过可以以下查询进行分组查询:
SELECT B表.编号, B表.识别号, B表.交税日期, A表.企业名称, A表.所在乡镇名, A表.行业, B表.税种, B表.金额
FROM A表 INNER JOIN B表 ON A表.识别号 = B表.识别号;

点击这里给我发消息

26#
 楼主| 发表于 2011-9-30 13:35:35 | 只看该作者
本帖最后由 鱼儿游游 于 2011-9-30 13:38 编辑
todaynew 发表于 2011-9-30 12:48
不知道你要汇总到什么程度,不过可以以下查询进行分组查询:
SELECT B表.编号, B表.识别号, B表.交税日期, ...


我的要求是这样的结果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
27#
发表于 2011-9-30 13:39:40 | 只看该作者
那用基础查询做报表吧

点击这里给我发消息

28#
 楼主| 发表于 2011-9-30 13:40:42 | 只看该作者
本帖最后由 鱼儿游游 于 2011-9-30 13:46 编辑

楼上的朋友,能帮忙吗?
29#
发表于 2011-9-30 13:54:05 | 只看该作者
用报表可以做到这效果
用一句SQL,可能吗?
想想也知道,你那表格里还有各种的合计字段呢
如果一定要用查询,我能想到的,是查询出基础数据后建立个临时表,除了正常的分组合计数据外再分别插入按行业和按乡镇的合计记录,最后用临时表数据生成查询
30#
发表于 2011-9-30 14:04:55 | 只看该作者
鱼儿游游 发表于 2011-9-30 13:35
我的要求是这样的结果:

不对吧?
与税种无关?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 15:23 , Processed in 0.177944 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表