资源描述:
《交叉表,行列转换,交叉查询经典,分组小计合计报表,sql,》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~http://www.cnblogs.com/Render/archive/2006/12/19/596485.html分组小计合计报表的SQLTable1结构如下:OrgName,StaffName,PayArea,Pay要生成如下形式报表:Org1,A1,100,4Org1,A2,100,4Org1,A3,100,4Org1小计,XX,XX,XXOrg2,B1,1
2、00,4....合计,XX,XXSQL:selectOrgNameDD,STAFFNAME,PayArea,Pay,OrgNameasEEfromTable1ast1unionselectOrgName
3、
4、'小计'DD,'',sum(PayArea),sum(Pay),OrgName
5、
6、'_'EEfromTable1ast2groupbyDEPT_IDunionSelect'合计'asDD,'',sum(PayArea),sum(Pay),'ZZZZZZZZ'asEEfromTable1order
7、byEE其中的OrgName
8、
9、'_'是为了取得一个比下一个不同的OraName大一些的值,以便让小计这条数据排在适当的位置,如
Org1小计要排在Org1和Org2之间,所以要选一个在数据库中字符排序号小的字符,这里以"_"表示。'ZZZZZZZZ'则
是为了把合计记录排在最后,所以要选一串在数据库中字符排序最大的字符构成的串,这里只是用'Z'来表示。用ee排序,但合计中'ZZZZZZZZ'EE,如果OrgName是汉字的话,那么排序后,合计将会变为第一行的,英文字母总是显示在汉字前面,
这样就
10、达不到合计显示在最后一行的目的了,如果将合计中'ZZZZZZZZ'EE变为'做做做做做做做做'EE这样就能使
合计排在最后一行,因为'做'字是字典中最后一个字~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~交叉表、行列转换和交叉查询经典Access静态叉表行列转换统计语句SELECTa.客户号,sum(iif(a.期初五级=1,a.期初余额,null))as"期初正常",sum(iif(a.期初五级=2,a.期初余
11、额,null))as"期初关注",sum(iif(a.期初五级=3,a.期初余额,null))as"期初次级",sum(iif(a.期初五级=4,a.期初余额,null))as"期初可疑",sum(iif(a.期初五级=5,a.期初余额,null))as"期初损失",sum(a.期初余额)as期初总计,sum(iif(a.期未五级=1,a.期未余额,null))as"期未正常",sum(iif(a.期未五级=2,a.期未余额,null))as"期未关注",sum(iif(a.期未五级=3,a.期未
12、余额,null))as"期未次级",sum(iif(a.期未五级=4,a.期未余额,null))as"期未可疑",sum(iif(a.期未五级=5,a.期未余额,null))as"期未损失",sum(a.期未余额)as期未总计,FROM[work-1]asaGROUPBYa.客户号;http://www.360doc.com/content/10/0609/23/314324_32230468.shtml一、什么是交叉表“交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这
13、种格式易于比较数据并辨别
其趋势。它由三个元素组成:行列摘要字段“交叉表”中的行沿水平方向延伸(从一侧到另一侧)。在上面的示例中,“手套”(Gloves)是一行。“交叉表”中的列沿垂直方向延伸(上下)。在上面的示例中,“美国”(USA)是一列。汇总字段位于行和列的交叉处。每个交叉处的值代表对既满足行条件又满足列条件的记录的汇总(求和、计数等)。
在上面的示例中,“手套”和“美国”交叉处的值是四,这是在美国销售的手套的数量。“交叉表”还可以包括若干总计:每行的结尾是该行的总计。在上面的例子中,该总计
14、代表一个产品在所有国家/地区的销售量。“手套”行结尾处的
值是8,这就是手套在所有国家/地区销售的总数。注意:总计列可以出现在每一行的开头。每列的底部是该列的总计。在上面的例子中,该总计代表所有产品在一个国家/地区的销售量。“美国”一列底部的
值是四,这是所有产品(手套、腰带和鞋子)在美国销售的总数。注意:总计列可以出现在每一行的顶部。“总计”(Total)列(产品总计)和“总计”(Total)行(国家/地区总计)的交叉处是总计。在上面的例子中,“
总计”列和“总计”行交叉处的值是