|
本帖最后由 t小宝 于 2011-10-2 01:11 编辑
鱼儿游游 发表于 2011-9-30 13:35 ![]()
我的要求是这样的结果: - PARAMETERS 年度 Short, 月份 Short;
- 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 (去年同期年累计.所在乡镇名 = 名称.所在乡镇名)
- ORDER BY 名称.所在乡镇名;
复制代码 |
|