位置: 编程技术 - 正文

一个简单的SQL 行列转换语句(一个简单的群规怎么写)

编辑:rootadmin
一个简单的SQL 行列转换 Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A 1 这种问题咋一看摸不着头绪,不过把思路理顺后再看,本质就是一个行列转换的问题。下面我结合这个简单的例子来实现行列转换。 下面3张表 描述部门,员工和员工类型之间的关系。 插入测试数据 看一下部门、员工和员工类型的列表 Department EmployeeName EmployeeType ---------- ------------ ------------ A Bob 正式 A John 临时 A May 正式 B Tom 正式 B Mark 辞退 B Ken 正式 现在我们需要输出这样一个列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 这个问题我的思路是首先统计每个部门的员工类型总数 这个比较简单,我把它做成一个视图 现在 select * from VDepartmentEmployeeType Id Department EmployeeType Cnt ----------- ---------- ------------ ----------- 2 B 辞退 1 1 A 临时 1 1 A 正式 2 2 B 正式 2 有了这个结果,我们再通过行列转换,就可以实现要求的输出了 行列转换采用 case 分支语句来实现,如下: 看一下结果 部门编号 部门名称 正式 临时 辞退 合计 ----------- ---------- ----------- ----------- ----------- ----------- 1 A 2 1 0 3 2 B 2 0 1 3 现在还有一个问题,如果员工类型不可以应编码怎么办?也就是说我们在写程序的时候并不知道有哪些员工类型。这确实是一个 比较棘手的问题,不过不是不能解决,我们可以通过拼接SQL的方式来解决这个问题。看下面代码 执行结果如下: 部门编号 部门名称 辞退 临时 正式 合计 ----------- ---------- ----------- ----------- ----------- ----------- 1 A 0 1 2 3 2 B 1 0 2 3 这个结果和前面硬编码的结果是一样的,但我们通过程序来获取了所有的员工类型,这样做的好处是如果我们新增了一个员工类型,比如“合同工”,我们不需要修改程序,就可以得到我们想要的输出。 如果你的数据库是SQLSERVER 或以上,也可以采用SQLSERVER 通过的新功能 PIVOT 结果如下 部门编号 部门名称 正式 临时 辞退 ----------- ---------- ----------- ----------- ----------- 1 A 2 1 NULL 2 B 2 NULL 1 NULL 可以通过 ISNULL 函数来强制转换为0,这里我就不写出具体的SQL语句了。这个功能感觉还是不错,不过合计好像用这种方法不太好搞。不知道各位同行有没有什么好办法。

推荐整理分享一个简单的SQL 行列转换语句(一个简单的群规怎么写),希望有所帮助,仅作参考,欢迎阅读内容。

一个简单的SQL 行列转换语句(一个简单的群规怎么写)

文章相关热门搜索词:一个简单的灯笼,一个简单的群规怎么写,一个简单的群规内容,一个简单的sql注入漏洞检测工具,一个简单的sql注入漏洞检测工具,一个简单的微笑说说,一个简单的群规怎么写,一个简单的sql注入漏洞检测工具,内容如对您有帮助,希望把文章链接给更多的朋友!

SQLServer 常用语句(按功能分) 一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语

SQLServer 管理常用SQL语句 1.查看数据库的版本select@@version2.查看数据库所在机器操作系统参数execmaster..xp_msver3.查看数据库启动的参数sp_configure4.查看数据库启动时间selectconvert(varch

SQL Server 中的触发器使用 下面我摘录了SQLServer官方教程中的一段关于触发器的文字,确实有用的一点文字描述。可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的

标签: 一个简单的群规怎么写

本文链接地址:https://www.jiuchutong.com/biancheng/349441.html 转载请保留说明!

上一篇:Linq to SQL 插入数据时的一个问题

下一篇:SQLServer 常用语句(按功能分)(sqlserver的基本语句)

  • 混合销售行为如何缴纳增值税税率
  • 土地增值税的扣除项目包括哪几项
  • 生产设备保险费会计分录
  • 一般纳税人账务核算不健全如何税务处理
  • 营销策划代理合同
  • 缴纳的增值税在资产负债表中怎么体现
  • 季报申报之后还可以改吗?
  • 现金日记账根据哪些凭证登记
  • 空调折旧费用科目
  • 房地产公司机构
  • 安置残疾人就业税收优惠政策
  • 医保卡划入账户金额
  • 哪些发票不可进行进项税抵扣?
  • 资本公积与实收资本和盈余公积有什么区别?
  • 外出经营活动税收管理证明和跨区域涉税事项报告表
  • 小规模纳税人税费怎么算
  • 公司账户转入另一个公司的投资款怎么做账?
  • 公司收到个人投资款没有备注
  • 购物预付卡怎么用
  • 企业收到退款应该如何做会计处理?
  • 培训费用走账需要交税吗
  • 增值税电子缴款凭证在哪里打印
  • 第一次申领发票可以增额吗?
  • 公司注销清算企业所得税申报表怎么填
  • 工程结算如何进行
  • 支付安装设备所有费用
  • 营改增之后账务怎么处理
  • 销货方发票红冲操作流程
  • 销售已使用过的小汽车增值税
  • 编制竣工决算的主要依据
  • 施工机械保险费属于什么费用
  • mac 查看当前用户
  • 交易性金融资产包括哪些项目
  • 固定资产修理支出准予扣除吗
  • 残疾人保障金工资总额包括年终奖吗
  • 卷积神经网络课程
  • 货币资金有余额怎样填写清税申报表
  • 节假日加班工资是几倍
  • 职工教育经费年底要冲回吗
  • 个人能去税务局开劳务费发票吗
  • 汇兑损益是资产类科目
  • js原型链的用处
  • phpcms api
  • 资产管理公司的监管部门是谁
  • 财务报表上期金额是指什么意思
  • 资产减值损失应计入什么科目
  • 企业食堂的费用入什么科目
  • 收到银行承兑汇票怎么兑现
  • 经营净利润计算公式
  • 网上代增值税专用发票
  • 可供出售金融资产现在叫什么
  • 去年的分红奖金是多少
  • 受托代销的含义
  • 材料报废如何做分录
  • 长期股权投资损益调整
  • 企业所得税季报与年报的关系
  • 出口货物发生退运损失由外贸承担还是厂家
  • 应收票据贷方余额
  • 事业编制可以带计算器吗
  • 劳务费可以白条入账吗
  • 事业单位企业所得税汇算清缴怎么做
  • 预付款怎样做会计分录
  • mysql必知必会mobi
  • u极速u盘启动官网
  • 组策略怎么用
  • windows图片密码
  • win8无线网络连接不上
  • 苹果电脑打不开txt
  • SUSE Linux Enterprise Server 设置IP地址、网关、DNS的方法
  • win8桌面图标变大了怎么调小
  • fdisk硬盘分区工具
  • 铁嘴王指什么动物
  • ObjectAnimator Demo
  • 现在最流行的是啥
  • 手机背光面板
  • unity数据结构和算法
  • javascript语言入门教程
  • 举例讲解生产可能性曲线
  • 福建省国税局电话号码
  • 供热基础设施配套费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设