版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分组小计合计报表的SQL Table1结构如下:OrgName,StaffName, PayArea,Pay要生成如下形式报表:Org1,A1,100,4Org1,A2,100,4Org1,A3,100,4Org1小计,XX,XX,XXOrg2,B1,100,4.合计, XX ,XXSQL:select OrgName DD,STAFFNAME,PayArea, Pay,OrgName as EE from Table1 as t1union select OrgName | '小计' DD,'',sum(PayArea,sum(Pay,OrgName |
2、39;_' EE from Table1 as t2 group by DEPT_IDunion Select '合计' as DD,'',sum(PayArea,sum(Pay,'ZZZZZZZZ' as EE from Table1 order by EE其中的OrgName|'_' 是为了取得一个比下一个不同的OraName大一些的值,以便让小计这条数据排在适当的位置,如Org1小计要排在Org1和Org2之间,所以要选一个在数据库中字符排序号小的字符,这里以"_"表示。 'ZZZZZZZ
3、Z'则是为了把合计记录排在最后,所以要选一串在数据库中字符排序最大的字符构成的串,这里只是用'Z'来表示。用ee 排序,但合计中 'ZZZZZZZZ' EE ,如果OrgName是汉字的话,那么排序后,合计将会变为第一行的,英文字母总是显示在汉字前面,这样就达不到合计显示在最后一行的目的了,如果将合计中'ZZZZZZZZ' EE 变为'做做做做做做做做' EE 这样就能使合计排在最后一行,因为'做'字是字典中最后一个字交叉表、行列转换和交叉查询经典Access 静态叉表行列转换统计语句SELECT a.客户
4、号, sum(iif(a.期初五级=1,a.期初余额,null as "期初正常",sum(iif(a.期初五级=2,a.期初余额,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 &
5、quot;期未正常",sum(iif(a.期未五级=2,a.期未余额,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 期未总计,FROM work-1 as aGROUP BY a.客户号;一、什么是交叉表“交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示
6、在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成:行 列 摘要字段 “交叉表”中的行沿水平方向延伸(从一侧到另一侧)。在上面的示例中,“手套”(Gloves 是一行。 “交叉表”中的列沿垂直方向延伸(上下)。在上面的示例中,“美国”(USA 是一列。 汇总字段位于行和列的交叉处。每个交叉处的值代表对既满足行条件又满足列条件的记录的汇总(求和、计数等)。在上面的示例中,“手套”和“美国”交叉处的值是四,这是在美国销售的手套的数量。 “交叉表”还可以包括若干总计:每行的结尾是该行的总计。在上面的例子中,该总计代表一个产品在所有国家/地区的销售量。“手套”行结尾处的值是 8,这就是
7、手套在所有国家/地区销售的总数。 注意: 总计列可以出现在每一行的开头。每列的底部是该列的总计。在上面的例子中,该总计代表所有产品在一个国家/地区的销售量。“美国”一列底部的值是四,这是所有产品(手套、腰带和鞋子)在美国销售的总数。 注意: 总计列可以出现在每一行的顶部。“总计”(Total 列(产品总计)和“总计”(Total 行(国家/地区总计)的交叉处是总计。在上面的例子中,“总计”列和“总计”行交叉处的值是 12,这是所有产品在所有国家/地区销售的总数。 二、行列转换和交叉查询:1: 列转为行:eg1:假设有张学生成绩表(CJ如下name subject result张三 语文 80张
8、三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82相关sql语句:Create table CJ(name char(10,subject char(10,result int;insert into CJ(name,subject,result values('张三','语文',99;insert into CJ(name,subject,result values('张三','数学',86;insert into CJ(name,subject,result values('张三',
9、'英语',75;insert into CJ(name,subject,result values('李四','语文',78;insert into CJ(name,subject,result values('李四','数学',85;insert into CJ(name,subject,result values('李四','英语',78select * from CJ想变成如下的交叉表 姓名 语文 数学 物理张三 99 90 85李四 85 92 82 我们首先来看一下如何建立
10、静态的交叉表,也就是说列数固定的交叉表,这种情况其实只要一句简单的Select查询就可以搞定:select name,sum(case when a.subject='语文' then result else null end as "语文",sum(case when a.subject='数学' then result else null end as "数学",sum(case when a.subject='英语' then result else null end as "英语"
11、; from CJ a group by name;当要增加“总计”列:"合计总分"时,如下表所示:姓名 合计总分 语文 数学 物理张三 260 99 90 85李四 241 85 92 82 只需增加sum(a.result as "合计总分",sql如下:select name,sum(a.result as "合计总分",sum(case when a.subject='语文' then result else null end as "语文",sum(case when a.subject=
12、'数学' then result else null end as "数学",sum(case when a.subject='英语' then result else null end as "英语" from CJ a group by name;其中利用了CASE语句判断,如果是相应的列,则取需要统计的cj数值,否则取NULL,然后再合计。其中有两个常见问题说明一下:a、用NULL而不用0是有道理的,假如用0,虽然求和函数SUM可以取到正确的数,但类似COUNT函数(取记录个数),结果就不对了,因为Null不算一条记
13、录,而0要算,同理空字串("")也是这样,总之在这里应该用NULL,这样任何函数都没问题。b、假如在视图的设计界面保存以上的查询,则会报错“没有输出列”,从而无法保存,其实只要在查询前面加上一段:Create View ViewName AS .,ViewName是你准备给查询起的名称,.就是我们的查询,然后运行一下,就可以生成视图了,对于其他一些设计器不支持的语法,也可以这样保存。以上查询作用也很大,对于很多情况,比如产品销售表中按照季度统计、按照月份统计等列头内容固定的情况,这样就行了,但往往大多数情况下列头内容是不固定的,象City,用户随时可能删除、添加一些城市,这
14、种情况就是我们所说的动态交叉表,在SQLServer中我们可以用存储过程来解决。下面我们补充一些知识:相关子查询相关子查询和普通子查询区别在于:相关子查询引用了外部查询的列。这种引用外部查询的能力意味着相关子查询不能自己独立运行,其中对于外部查询引用会使会使其无法正常执行。因此相关子查询的执行顺序如下:1.首先执行一遍外部查询2.对于外部查询的每一行分别执行一遍子查询,而且每次执行子查询时候都会引用外部的当前行的值。使用子查询的结果来确定外部查询的结果集。举个例子;SELECT t1.typeFROM titles t1GROUP BY t1.typeHAVING MAX(t1.advance
15、 >=ALL(SELECT 2 * AVG(t2.advanceFROM titles t2WHERE t1.type = t2.type这个结果返回最高预付款超过给定组中平均预付款两倍的书籍类型。再举个例子:要求返回每一个编号的最大值(列出id,name,scoreID Name(编号) Score(分数)1 a 882 b 763 c 664 c 905 b 776 a 567 b 778 c 679 a 44select * from t a where score=(select Max(Score from t b where = 再给一个排位的sql语
16、句SELECT ( SELECT count(* 1 as dd FROM Test as a where a.F2 FROM Test as b order by b.F2;好了关于sql的相关子查询先讲到这里。SQLServer中局部变量赋值方法有两种: 一种: set 变量名 = 值 二种: select 变量名 = 值 第二种可以从某个表中得到数据再赋值给变量 例: 从用户信息表中查询中cid为 20 的用户姓名将他赋值给变量 name declare name varchar(10 -用户名 select name=userName from userInfo where cid =
17、 20 print 'cid为20的用户姓名:' + name 递归的select变量递归的select变量是指使用select语句和子查询将一个变量与其自身拼接起来。语法形式如下:select variable = variable + table.column from table-见sql server2000宝典:P354,这是一种很优美的查询方法.从而将基础表中垂直的列数据改为水平方向的数据。这样就可以替代游标。动态的交叉表这样就代替了传统的游标。SQL语句解决方法:写法一:declare sql varchar(4000set sql = 'select n
18、ame'select sql = sql + ',sum(case subject when '''+subject+''' then result end as '+subjectfrom (select distinct subject from CJ as aselect sql = sql+' from CJ group by name'exec(sql写法二:declare sql varchar(4000set sql = 'select name'select sql = sq
19、l + ',sum(case subject when '''+subject+''' then result end as '+subject+' from CJ group by subjectselect sql = sql+' from CJ group by name'exec(sql具体不同的多种写法参见本文相关链接文章中的其他例子在Access中还提供了TransForm来实现行列转换TRANSFORM count(Result AS number SELECT 姓名 FROM 学生成绩表 G
20、ROUP BY 姓名 PIVOT Subject;TransForm 用法如下:=TRANSFORM aggfunction selectstatement PIVOT pivotfield IN (value1, value2, . TRANSFORM 语句可分为以下几个部分: 部分 描述 aggfunction 在选定数据上运作的 SQL 合计函数。 selectstatement SELECT 语句。 pivotfield 在查询的结果集中创建列标题时用的字段或表达式。 value1, value2 用来创建列标题的固定值。 说明 使用交叉表查询来摘要数据时,从指定的字段或表达式中选定值
21、作为列标题, 这样,可以用比选定查询更紧凑的格式来观察数据。 TRANSFORM 是可选的,但在使用它时,要作为 SQL 字符串中的第一个语句。 它出现在 SELECT 语句(指定作为行标题的字段的)之前,还出现在 GROUP BY 子句 (指定行分组的)之前。可以有选择地包含其它子句,例如 WHERE 子句,它指定附 加的选择或排序条件。也可以将子查询当作谓词,特别是在叉表查询的 WHERE 子句中。 pivotfield 返回的值被用作查询结果集中的列标题。 例如,在交叉表查询中,将根据销售图表按销售月份创建 12 个列。 可以限制 pivotfield 用列在可选的 IN 子句中的固定值
22、(value1, value2)来创建标题。 也可以用没有数据存在的固定值来创建附加的列。 2. 列行转换暂时保留3. 行列转换-加合并有表A,id pid1 11 21 32 12 23 1如何化成表B:id pid1 1,2,32 1,23 1创建一个合并的函数create function fmerg(id intreturns varchar(8000asbegindeclare str varchar(8000set str=''select str=str+','+cast(pid as varchar from 表A where id=idset
23、str=right(str,len(str-1return(strEndgo-调用自定义函数得到结果select distinct id,dbo.fmerg(id from 表A相关链接:SQL语句精典收藏SqlServer生成交叉表大全 分类: SqlServer 2007-12-05 16:39 601人阅读 评论(0 收藏 举报 SqlServer如何生成动态交叉表查询VB+MS SqlServer,是我们目前开发数据库应用系统最常用的模式,翻翻以前的老帖子,有一些SqlServer的问题经常被提出来,但正确解答甚少,现把我对这些问题的见解贴出来,这次先讲讲动态交叉表的问题为
24、了说明问题,我们用SqlServer自带的事例数据库(Northwind来进行验证,所有的例子请放到Northwind中运行,我可能会省略Use语句,所引用的表,都是Northwind中的,下面我就不再说明了我这里指的交叉表,就是象Access的交叉表查询一样的效果,比如Employees表中City字段代表了城市的名称,TitleOfCourtesy代表称呼,我们希望按照City和TitleOfCourtesy的情况来统计ReportsTo字段的合计数(本统计没有任何实际意义,只是挑选一些记录包含重复内容的字段来说明情况),并显示成以下格式:(TitleOfCourtesy作为行,City作
25、为列)TitleOfCourtesyLondonCityRedmondCitySeattleCityDr. Mr.12 Mrs. 2 Ms.5 4探讨这个问题之前,我们首先来看一下如何建立静态的交叉表,也就是说列数固定的交叉表,这种情况其实只要一句简单的Select查询就可以搞定:SELECT TitleOfCourtesy, SUM(CASE City WHEN 'London' THEN ReportsTo ELSE NULL END AS London City,
26、0;SUM(CASE City WHEN 'Redmond' THEN ReportsTo ELSE NULL END AS Redmond City, SUM(CASE City WHEN 'Seattle' THEN ReportsTo ELSE NULL END AS Seattle CityFROM Employees GROUP BY TitleOfCourtesy其中利用了CASE语句判断,如果是相应的列,则取需要统计的ReportsTo数值,否则取NULL,然后再合计其中有两个常见问题说明一下:a、用NULL而不用0是有道理的,假如用0
27、,虽然求和函数SUM可以取到正确的数,但类似COUNT函数(取记录个数),结果就不对了,因为Null不算一条记录,而0要算,同理空字串("")也是这样,总之在这里应该用NULL,这样任何函数都没问题。b、假如在视图的设计界面保存以上的查询,则会报错“没有输出列”,从而无法保存,其实只要在查询前面加上一段:Create View ViewName AS .,ViewName是你准备给查询起的名称,.就是我们的查询,然后运行一下,就可以生成视图了,对于其他一些设计器不支持的语法,也可以这样保存。以上查询作用也很大,对于很多情况,比如按照季度统计、按照月份统计等列头内容固定的情况
28、,这样就行了,但往往大多数情况下列头内容是不固定的,象City,用户随时可能删除、添加一些城市,这种情况,我们就需要用存储过程来解决:总体思路其实很简单,首先检索列头信息,形成一个游标,然后遍历游标,将上面查询语句里Case判断的内容用游标里的值替代,形成一条新的Sql查询,然后执行,返回结果,就可以了,以下是我写的一个存储过程,供大家参考:CREATE procedure CorssTab strTabName as varchar(50 = 'Employees', -此处放表名strCol as varchar(50 = 'City',
29、0; -表头分组依据字段strGroup as varchar(50 = 'TitleOfCourtesy',-分组字段strNumber as varchar(50 = 'ReportsTo', -被统计的字段strSum as varchar(10 = 'Sum'
30、0; -运算方式ASDECLARE strSql as varchar(1000, strTmpCol as varchar(100EXECUTE ('DECLARE corss_cursor CURSOR FOR SELECT DISTINCT ' + strCol + ' from ' + strTabName + ' for
31、 read only ' -生成游标begin SET nocount ON SET strsql ='select ' + strGroup + ', ' + strSum + '(' + strNumber + ' AS ' + strSum + ' of ' + strNumber + '' -查询的前半段 OPEN corss_cursor while (0=0 BEGIN FETCH
32、NEXT FROM corss_cursor -遍历游标,将列头信息放入变量strTmpCol INTO strTmpCol if (fetch_status<>0 break SET strsql = strsql + ', ' + strSum + '(CASE ' + strCol + ' WHEN ''' + strTmpCol +
33、''' THEN ' + strNumber + ' ELSE Null END AS ' + strTmpCol + ' ' + strCol + '' -构造查询 END SET strsql = strsql + ' from ' + strTabname + ' group by ' + strGroup -查询结尾 EXECUTE(strsql -执行 I
34、F error <>0 RETURN error -如果出错,返回错误代码 CLOSE corss_cursor DEALLOCATE corss_cursor RETURN 0 -释放游标,返回0表示成功endGO几点说明:a、这是一个通用存储过程,使用时strTabName、strCol、strGroup、strNumber、strSum几个变量设置一下就可以用到其他表上,其中结果集的第二列我加了个合计列b、为了测试方便,我在存储过程中设置了默认值,就是前面提到的Employees表,这样直接运行时就可以出来我上面提到的结果。c、使用时,可以把上面的代
35、码复制到企业管理器的查询设计界面Sql窗格,或者查询分析器里运行一下(注意正确选择NorthWind数据库),就可以生成一个存储过程:CorssTab,然后直接运行CorssTab,如果出现本文前面类似的窗格,就表示运行成功了。d、假如用于其它表,首先需要在你的用户数据库里生成此存储过程(当然也可以放到Master里,然后再加个变量:DataBase,赋值为数据库名称,然后在上面代码打开指定数据库,这样所有的数据库都可以调用它),当你调用时,采取以下格式:CorssTab strTabName = 'Orders', strCol = 'DATEPART(yy, Ord
36、erDate',strGroup = 'CustomerID', strNumber = 'OrderID', strSum = 'Count'上面这条语句统计了NorthWind中Orders表里每个客户年度订单数量,大家可以运行试一下效果,虽然列头显示的名称不恰当,但基本效果出来了,相信大家通过对我的代码再作简单修改,可以达到满意的交叉表效果。下次我再讲讲,如何给查询的记录集自动加行号 动态SQL的使用例子, 行列转换drop table #testcreate table #tes
37、t(name nvarchar(20,type nvarchar(20,category nvarchar(20select * from #testinsert into #test(name,type,category values ('n1','t1','c1'insert into #test(name,type,category values ('n2
38、39;,'t1','c2'insert into #test(name,type,category values ('n3','t2','c1'insert into #test(name,type,category values ('n4','t3','c3'insert into #test(name,type,category values (
39、'n5','t2','c4'insert into #test(name,type,category values ('n6','t3','c5'insert into #test(name,type,category values ('n1','t1','c1'-select category,name,sum(case when type=
40、't1' then 1 else 0 end,sum(case when type='t2' then 1 else 0 end,sum(case when type='t3' then 1 else 0 end from #test group by name,category-如果type不固定-使用動態S
41、QL語句 Declare S Varchar(8000Select S = 'Select category, name'Select S = S + ', SUM(Case type When ''' + type + ''' Then 1
42、0;Else 0 End As ' + typeFrom #TEST Group By typeSelect S = S + ' From #TEST Group By category, name Order By category, name'print SEXEC(SGO -测试数据
43、160; 行转列 Create table test (name char(10,km char(10,cj int insert test values('张三','语文',80 &
44、#160; insert test values('张三','数学',86 insert test values('张三','英语',75 insert test values(
45、39;李四','语文',78 insert test values('李四','数学',85 insert test values('李四','英语',77
46、0;-查询 declare sql varchar(8000,s1 varchar(8000 select sql = '',s1='' se
47、lect sql = sql+ ','+km+'=sum(case km when '''+km+''' then cj else 0
48、0; end' ,s1=s1+',sum(case km when '''+km+''' then cj else 0 end/sum(case km
49、 when '''+km+''' then 1 else 0 end' from test group by&
50、#160; km exec('select name=case grouping(name when 1 then ''全班总分'' else name end'+s
51、ql+',小计=sum(cj from test group by name with rollup union all select
52、; ''全班平均分'''+s1+',sum(cj/count(distinct name from test' go -删除测试 drop table&
53、#160; test -MS SQL2000下月份不固定的動態寫法Create Table TEST(class Nvarchar(10, name Nvarchar(10, 年份 Int, 1月 Varchar(10, 2月
54、160; Varchar(10, 3月 Varchar(10Insert TEST Select N'一班',N'张三',2007,'5元','2元','5元'Union All Select N'一班',N'李四',2006,'3元
55、','0元','1元'Union All Select N'二班',N'王五',2007,'0元','0元','1元'GODeclare S Nvarchar(4000Select S = ''Select S = S + ' Union Select class, name,
56、0;年份, ''' + Name + ''' As 月份, ' + Name + ' As 元 From TEST ' From SysColumns Where ID = OBJECT_ID('TEST' And Name Like
57、60;'%月' Order By NameSelect S = Stuff(S, 1, 7, ''Print SEXEC(SGODrop Table TEST -动态月份2005 处理如下:-测试环境create table tb_tb(class varchar(10,name varchar(10,年份 varchar(10,1月 varchar(10,2月
58、160;varchar(10,3月 varchar(10insert into tb_tb select '一班','张三','2007','5元','2元','5元'union all select '一班','李四','2006','3元','0元','1元'union all select
59、'二班','王五','2007','0元','0元','1元'-计算月份:declare 月份 varchar(100set 月份=''select 月份=月份+','+name+'' from sys.columns where object_id=object_id('tb_tb'and name like '%月&
60、#39;set 月份=stuff(月份,1,1,''-交叉表处理exec('select * from tb_tbunpivot ( 金额 for 月份 in ('+月份+' unptwhere 金额<>''0元'''-删除测试环境drop table tb_tb -建立測試環境Create
61、60;Table 表1(id Int, 名称 Nvarchar(20Insert 表1 Select 1, N'名称1'Union All Select 2, N'名称2'Union All Select
62、0;3, N'名称3'Create Table 表2(id Int, 时间 Nvarchar(10, 地点 Nvarchar(10Insert 表2 Select 1,
63、60; N'5日', N'上海'Union All Select 1, N'9日', N'北京'Union All Select 1,&
64、#160; N'20日', N'天津'Union All Select 2, N'8日', N'杭州'Union
65、60;All Select 2, N'19日', N'广州'Union All Select 3, N'8日',
66、 N'深圳'GO-創建函數Create Function F_TEST(id IntReturnS Nvarchar(4000AsBegin Declare S Nvarchar(4000 Select S = '' Select S = S + ''
67、 + 时间 + '-' + 地点 From 表2 Where id = id Select S = Stuff(S, 1, 1, '' Return SEndGO-測試Select id, db
68、o.F_TEST(id As 时间、地点From 表1GO-刪除測試環境Drop Table 表1, 表2Drop Function F_TEST 把列变成行的sql语句线有如下表: 科目 分数 姓名 语文 88 董兆 数学 95
69、160; 董兆 英语 89 董兆 语文 69 婵娟 数学 95 婵娟 英语 89
70、160; 婵娟 语文 69 李慧 数学 95 李慧 英语 89 李慧一条sql语句,查询结果是 李慧 婵娟 董兆 语文&
71、#160; 69 69 88 数学 95 95 95 英语 89 89 89sql语句如下:create table k(科目 varchar(50,分数 int,姓名 varchar(50insert k select '语文',88,'董兆'union all select '数学'
72、,95,'董兆'union all select '英语',89,'董兆'union all select '语文',69,'婵娟'union all select '数学',95,'婵娟'union all select '英语',89,'婵娟'union all select '语文',69,'李慧'union all select '数学',95,'李慧'union all sele
73、ct '英语',89,'李慧'declare s varchar(8000set s='select 科目'select s=s+','+姓名+'=sum(case 姓名 when '''+姓名+''' then 分数 else 0 end'from k group by 姓名exec(s+'from k group by 科目' 应用SQL交叉表实现行列转换-数据结构 IDint40Gradevarchar501ExamYearv
74、archar501Namevarchar501Subjectvarchar501Scoreint41-数据体 IDGradeExamYearNameSubjectScore1. 2004级2班2004李明数学1002. 2004级2班2004王强数学903. 200
75、4级2班2004付超数学854. 2004级2班2004李明语文755. 2004级2班2004王强语文896. 2004级2班2004付超化学897. 2004级2班
76、2004李明化学458. 2004级2班2004王强化学789. 2004级2班2005李明数学8910. 2004级2班2005王强数学8811. 2004级2班2005付超数学8612. 2004级2
77、班2005李明语文7813. 2004级2班2005王强语文9214. 2004级2班2005付超化学9415. 2004级2班2005付超语文5916. 2004级2班2005李明化学5417. 2004级2班2005王强化学80 -SQL语句DeclareSqlStrnvarchar(
78、2000 -构建Sql语句,生成2004级2班 2004年的考虑成绩表SelectSqlStr='selectGrade,ExamYear,Name,' -生成条件选择语句,使用Distinct把所有科目全部列出,当然,可以加上条件,如:仅某一年度的考试科目SelectSqlStr=SqlStr+'SUM(CASESubjectWHEN'''+Subject+'''THENScoreELSE0ENDAS'''+Subject+''','from(S
79、electDistinctSubjectfromExamResultwhereExamYear=2004AsTemTable -补全Sql语句,并使用GroupBy对重复的记录进行汇总SelectSqlStr=left(SqlStr,Len(SqlStr-1+'fromExamResultwhereExamYear=2004GroupByName,Grade,ExamYear' -执行SqlExec(SqlStrGo -执行结果 Grade ExamYear Name 化学 数学 语文 1 2004级2班 200
80、4 付超 89 85 56 2 2004级2班 2004 李明 45 100 75 3 2004级2班 2004 王强 78 90 89 行列转换例子一、現有一個表TB1,其字段如下:(Name:代表姓名,Province:代表省份,Score:代表業務顧客數量Name Province Score李三 四川 5小王 四川 3小張 廣州 3李三 廣州
81、0; 2小張 湖南 3李三 湖南 4得到下面的結果:姓名 四川 廣州 湖南 總計李三 5 2 4 11小王 3 0 0 3小張 0 3 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年钢铁行业纳入全国碳市场:核算边界与配额分配要点
- 2026年小学消防安全讲座
- 2026年钢铁建材石化化工行业零碳工厂路线图
- 2026年深地深海产业风险识别与中长期回报评估框架
- 透水混凝土施工技术要点
- 2026年网络安全举报流程培训
- 2026年水上安全规则培训
- 2026年实验室电气安全培训
- 2026年商场安全防范培训
- 昏迷患者并发症的护理措施
- 福建省福州市2026届高三三月质量检测语文试题及参考答案
- 2025中国烟草总公司吉林省公司拟录用毕业生笔试历年备考题库附带答案详解
- 2026江西省吉安市卫生学校面向社会招聘4人考试参考题库及答案解析
- 中小学理科实验室装备规范JY/T-0385-2025
- XX中学2025-2026学年春季学期教师公开课展示活动方案
- 人工智能通识与AIGC应用.课程标准-参考
- 2026年南阳科技职业学院单招职业技能测试题库及答案详解(真题汇编)
- 【新教材】统编版(2024)小学三年级语文下册第6课《会摇尾巴的狼》教案(教学设计)
- 2025至20303D打印行业市场发展分析及前景趋势与投融资发展机会研究报告
- 企业知识管理系统功能需求分析
- 2026年广西壮族自治区区直事业单位统一公开招聘工作人员650人备考题库及完整答案详解
评论
0/150
提交评论