整理了一下,问题在24楼:http://www.office-cn.net/thread-105762-3-1.html 作者: Henry D. Sy 时间: 2011-9-29 13:50
把例子传上来作者: tzh16000 时间: 2011-9-29 13:53
试试
select b.b1,b.b2,sum(b3) as "求和" from a,b on (b.b1=a.a1 and b.b2=a.a2) group by b.b1,b.b2 作者: 鱼儿游游 时间: 2011-9-29 14:06 本帖最后由 鱼儿游游 于 2011-9-29 14:09 编辑
试了,不行。A2 <> B2 的作者: tzh16000 时间: 2011-9-29 14:20
select b.b1,a.a2,b.b2,sum(b3) as "求和" from a,b on b.b1=a.a1 group by b.b1,a.a2,b.b2 作者: 鱼儿游游 时间: 2011-9-29 14:27
已 上传数据表作者: 鱼儿游游 时间: 2011-9-29 14:38
我试试作者: tzh16000 时间: 2011-9-29 14:41
你这是要两个查询吧
SELECT A表.所在乡镇名, Sum(B表.金额) AS 金额之总计
FROM A表 LEFT JOIN B表 ON A表.编号 = B表.编号
GROUP BY A表.所在乡镇名;
SELECT A表.行业, Sum(B表.金额) AS 金额之总计
FROM A表 LEFT JOIN B表 ON A表.编号 = B表.编号
GROUP BY A表.行业; 作者: tzh16000 时间: 2011-9-29 14:46
是这样么?作者: 鱼儿游游 时间: 2011-9-29 14:52 本帖最后由 鱼儿游游 于 2011-9-29 14:52 编辑
多谢楼上的,但不是我要的结果 作者: 鱼儿游游 时间: 2011-9-29 14:52
我要一个查询,不要分开的作者: tzh16000 时间: 2011-9-29 15:00
老兄,你的要求在不断变化啊,刚才还是工业现在是税种了 作者: 鱼儿游游 时间: 2011-9-29 15:17
已解决,多谢各位。
SELECT A表.所在乡镇名, B表.税种, Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
GROUP BY B表.税种, A表.所在乡镇名; 作者: Henry D. Sy 时间: 2011-9-29 15:17
1、先写一个查询1
SELECT B表.编号, B表.识别号, A表.企业名称 AS 企业, A表.所在乡镇名 AS 乡镇, A表.行业, Year([交税日期]) AS 年度, Month([交税日期]) AS 月度, B表.税种, B表.金额
FROM A表 INNER JOIN B表 ON A表.识别号 = B表.识别号;
2、以查询1为基础写分组查询,在分组查询中用域函数或子查询算累计、同期等字段
SELECT a.乡镇, a.行业, a.年度, a.月度, a.税种, Sum(a.金额) AS 本期, DSum("金额","查询1","乡镇='" & a.[乡镇] & "' and 行业='" & a.[行业] & "' and 税种='" & a.[税种] & "' and 年度=" & a.[年度] & " and 月度<=" & a.[月度]) AS 累计
FROM 查询1 as a
GROUP BY a.乡镇, a.行业, a.年度, a.月度, a.税种;
SELECT 本年本月合计.行业 AS 项目, 本年本月合计.金额之总计 AS 本年本月合计, 本年本月止累计.金额之总计 AS 本年本月止累计, 去年同期月合计.金额之总计 AS 去年同期月合计, 去年同期年累计.金额之总计 AS 去年同期年累计, nz([本年本月合计])-nz([去年同期月合计]) AS 月份对比_增减数, Format([月份对比_增减数]/nz([本年本月合计]),"0.00%") AS [月份对比_增减%], nz([本年本月止累计])-nz([去年同期年累计]) AS 累计对比_增减数, Format([累计对比_增减数]/nz([去年同期年累计]),"0.00%") AS [累计对比_增减%]
FROM
(SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))
GROUP BY A表.行业, A表.所在乡镇名
UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))
GROUP BY A表.所在乡镇名
UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))
GROUP BY A表.行业
UNION ALL SELECT "0总计", "总 计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))<=[月份]))) AS 去年同期年累计
RIGHT JOIN
((SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号 = A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))
GROUP BY A表.所在乡镇名, A表.行业
UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))
GROUP BY A表.所在乡镇名
UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))
GROUP BY A表.行业
UNION ALL SELECT "0总计", "总 计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]-1) and ((Month([交税日期]))=[月份]))) AS 去年同期月合计
RIGHT JOIN
((SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))
GROUP BY A表.行业, A表.所在乡镇名
UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))
GROUP BY A表.所在乡镇名
UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))
GROUP BY A表.行业
UNION ALL SELECT "0总计", "总 计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))<=[月份]))) AS 本年本月止累计
RIGHT JOIN
((SELECT A表.所在乡镇名, A表.行业, Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号 = A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))
GROUP BY A表.所在乡镇名, A表.行业
UNION ALL SELECT A表.所在乡镇名, A表.所在乡镇名 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))
GROUP BY A表.所在乡镇名
UNION ALL SELECT A表.行业 & "合计", A表.行业 & "合计", Sum(B表.金额) AS 金额之总计
FROM B表 LEFT JOIN A表 ON B表.识别号=A表.识别号
WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))
GROUP BY A表.行业
UNION ALL SELECT "0总计", "总 计", Sum(金额) AS 金额之总计
FROM B表 WHERE (((year([交税日期]))=[年度]) and ((Month([交税日期]))=[月份]))) AS 本年本月合计
RIGHT JOIN
(SELECT 所在乡镇名, 行业 FROM A表 GROUP BY 所在乡镇名, 行业
UNION ALL SELECT 所在乡镇名, 所在乡镇名 & "合计" FROM A表 GROUP BY 所在乡镇名
UNION ALL SELECT 行业 & "合计", 行业 & "合计" FROM A表 GROUP BY 行业
UNION ALL SELECT TOP 1 "0总计", "总 计" FROM A表 ) AS 名称
ON
(本年本月合计.行业 = 名称.行业) AND (本年本月合计.所在乡镇名 = 名称.所在乡镇名)) ON (本年本月止累计.行业 = 名称.行业) AND (本年本月止累计.所在乡镇名 = 名称.所在乡镇名)) ON (去年同期月合计.行业 = 名称.行业) AND (去年同期月合计.所在乡镇名 = 名称.所在乡镇名)) ON (去年同期年累计.行业 = 名称.行业) AND (去年同期年累计.所在乡镇名 = 名称.所在乡镇名)