行列转换后按类别统计 《散分》

问题描述

工资编号员工编号工资项工资部门编号11岗位工资1000111薪级工资2000111取暖费1201..22岗位工资2000122薪级工资100122取暖费300133岗位工资4000233薪级工资211233取暖费3002....--------------------------------------工资项是不固定的人员不固定部门不固定---------------------------------------我想变成。。。员工编号部门编号岗位工资薪级工资取暖费.......11100020001202110002000120小计20004000240322000100300小计2000100300.........-----------------------------------------------------我现在已经可以做出来员工编号岗位工资薪级工资取暖费.......11000200012021000200012032000100300小计40004100540------------------------------------------------但是加上安类别分开就不行了希望高手能解答下刚注册的号有多少分给多少。。。

解决方案

解决方案二:
学习。。。。。。。。。。。
解决方案三:
zen怎么没人回答啊  大侠们救命啊....
解决方案四:
下面是我的存储过程  然后利用GRIDVIEW主详表来显示 但是没个部门统计无法实现 .........CREATEPROCEDUREgetzhucongASselect*fromygleftjoindepartmentonyg.d_id=department.d_idorderbyyg.d_idascdeclare@sqlvarchar(8000)set@sql='selectconvert(int,shifa.gzbh)as工资编号,yg.yg_nameas员工姓名,shifa.yg_id,d_name'select@sql=@sql+',Max(casesubstring(shifa.gzx,3,20)when'''+substring(gzx,3,20)+'''thenconvert(numeric(19,2),shifa.gz)else0end)['+substring(gzx,3,20)+']'from(selectdistinctgzxfromshifa)asaselect@sql=@sql+',Max(caseykf.gzxwhen'''+gzx+'''thenconvert(numeric(19,2),ykf.gz)else0end)['+gzx+']'from(selectdistinctgzxfromykf)ascselect@sql=@sql+',Max(casesubstring(yingkou.gzx,3,20)when'''+substring(gzx,3,20)+'''thenconvert(numeric(19,2),yingkou.gz)else0end)['+substring(gzx,3,20)+']'from(selectdistinctgzxfromyingkou)asbselect@sql=@sql+',Max(casesubstring(yks.gzx,3,20)when'''+substring(gzx,3,20)+'''thenconvert(numeric(19,2),yks.gz)else0end)['+substring(gzx,3,20)+']'from(selectdistinctgzxfromyks)asdselect@sql=@sql+',Max(casesubstring(gz_zj.gzx,3,20)when'''+substring(gzx,3,20)+'''thenconvert(numeric(19,2),gz_zj.gz)else0end)['+substring(gzx,3,20)+']'from(selectdistinctgzxfromgz_zj)aseset@sql=@sql+'fromshifaleftjoindepartmentonshifa.bumen=department.d_idleftjoingz_zjonshifa.gzbh=gz_zj.gzbhleftjoinyingkouonshifa.gzbh=yingkou.gzbhleftjoinykfonykf.gzbh=shifa.gzbhleftjoinygonyg.yg_id=shifa.yg_idleftjoinyksonshifa.gzbh=yks.gzbhgroupbyd_name,shifa.bumen,shifa.gzbh,yg_name,shifa.yg_idorderbyshifa.bumenasc'exec(@sql)GO
解决方案五:
if(exists(select1fromsys.objectswhereobject_id=OBJECT_ID(N'dbo.WageInfo')andtypein(N'U')))droptableWageInfocreatetableWageInfo(工资编号int,员工编号int,工资项varchar(40),工资decimal(10,2),部门编号int)insertintoWageinfoselect1,1,N'岗位工资',1000,1unionallselect1,1,N'薪级工资',2000,1unionallselect1,1,N'取暖费',120,1unionallselect2,2,N'岗位工资',2000,1unionallselect2,2,N'薪级工资',100,1unionallselect2,2,N'取暖费',300,1unionallselect3,3,N'岗位工资',4000,2unionallselect3,3,N'薪级工资',211,2unionallselect3,3,N'取暖费',300,2select*fromwageinfoBEGINDECLARE@VALUEVARCHAR(3000)SELECT@VALUE='select工资编号'SELECT@VALUE=@VALUE+',max(case工资项when'''+工资项+'''then工资else0end)['+工资项+']'from(selectdistinct工资项fromWageinfo)asaselect@VALUE=@VALUE+'fromWageinfogroupby工资编号'exec(@value)END

解决方案六:
结果--11000.00120.002000.00--22000.00300.00100.00--34000.00300.00211.00

解决方案七:
这个方法我用过了可以实现主从表关系但是没有按分组统计。。。。。。。。
解决方案八:
搜索"交叉表"回复内容太短了!

时间: 2024-08-17 14:18:51

行列转换后按类别统计 《散分》的相关文章

在Sqlserver下巧用行列转换日期的数据统计

原文:在Sqlserver下巧用行列转换日期的数据统计                  在Sqlserver下巧用行列转换日期的数据统计   前言     在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法.常应用于统计网站的PV流量.合同项目中月收入等业务场景中.在文中我分享下最近做过的统计小案例,和大家互相学习下:)  背景         合同中行项目按月收入的统计   1.业务逻辑及需求   

行列转换-sql 检索结果拼接成字符串。。

问题描述 sql 检索结果拼接成字符串.. 因项目中业务要求所致,写SQL的时候对检索结果的最后两列进行了行列转换.如下pivot (sum(sl) for community_code in ('0201' 社区1 '0202' 社区2'0203' 社区3))因为社区的个数不确定,就导致了输出的结果集中列的个数也不确定.所以用实体类进行接收结果集的时候就遇到了麻烦.对应上述问题,决定将结果集的每一行拼接成一个字符串.那么问题就来了,输出的数据和社区名称对应不起来了..不知道有没有什么好的方法解

textbox-sql 行列转换时,空值如何设置成0

问题描述 sql 行列转换时,空值如何设置成0 在用Sql静态方法进行行列转换时,数据库存在的空值如何处理?我想空值变为0. create table tb(姓名 varchar(10) , 学号 varchar(10), 课程 varchar(10) , 分数 int) insert into tb values('张三' ,'123456', '语文' , 74) insert into tb values('张三' ,'123456', '数学' , 83) insert into tb

每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)

原文 http://www.cnblogs.com/Olive116/p/3271706.html 2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下:  查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的

[数据库] SQL查询语句表行列转换及一行数据转换成两列

本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同性质的学生总数 3.一行数据转换成两列数据 union all 4.表行列数据转换(表转置) 1.创建数据库表及插入数据 创建数据库.创建学生表并设置主键.插入数据代码如下: --创建数据库 create database StudentMS --使用数据库 use StudentMS --创建学生

一个简单的SQL 行列转换语句_MsSql

一个简单的SQL 行列转换 Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A 30 20 10 1 这种问题咋一看摸不着头绪,不过把思路理顺后再看,本质就是一个行列转换的问题.下面我结合这个简单的例子来实现行列转换. 下面3张表 复制代码 代码如下: if exists ( select * from sysobjects where id =

在WPS中用转置实现表格行列转换

有时,我们需要将已经做好的表格的行.列对调一下,手工转换不仅费时费力,还容易出错,那有没有更简单也更可靠的方式实现表格中的行列转换呢? 方法一:用WPS表格的"选择性粘贴"实现转换. 在WPS表格2005中,选中整个表格,复制到剪贴版,然后将光标置于空白处,从菜单中点选"编辑-选择性粘贴",在弹出的对话框中选中"转置"(图1),确定后即把整个表格"翻了个个儿"粘贴到指定位置了(图2).如果要转换的是WPS文字中的表格,可以先在

怎么让wps表格实现行列转换

  方法一:用WPS表格的"选择性粘贴"实现转换. 在WPS表格2005中,选中整个表格,复制到剪贴版,然后将光标置于空白处,从菜单中点选"编辑-选择性粘贴",在弹出的对话框中选中"转置"(图1),确定后即把整个表格"翻了个个儿"粘贴到指定位置了(图2).如果要转换的是WPS文字中的表格,可以先在WPS文字中将表格复制.粘贴到WPS表格中,再用上述方法实现. 方法二:利用插件轻松实现 WPS高手初少制作的WPS文字工具栏插件中

【转】SQL行列转换

原文地址:http://blog.csdn.net/kiki113/article/details/4105929   行列转换等经典SQL语句 1.--行列转换 原表:   姓名     科目   成绩            张三     语文    80            张三     数学    90            张三     物理    85            李四     语文    85            李四     物理    82            李