位置: 编程技术 - 正文

一个简单的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的基本语句)

  • 财务管理税后利息率计算公式
  • 土地使用权转让是什么意思
  • 所得税费按年缴纳?
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 个人所得税定期定额起征点
  • 一般纳税人需要申报什么税
  • 如何确定核定征收的应税所得率
  • 赠送的物业费需要交个税吗
  • 商贸流通企业包括哪些
  • 发放工资比计提工资少了
  • 劳保费计入管理费用的什么
  • 分期缴纳土地出让金的契税
  • 合同副本和正本区别
  • 注销公司税务一年几次
  • 递延所得税费用为负数是什么意思
  • 工程款增值税怎么算
  • 地税评为d级纳税人是指
  • 水利建设专项收入
  • 待认证进项税额借方余额表示什么
  • 哪些票据可以冲销
  • 分公司的发票可以由总公司开吗
  • 个人承包公司的经营所得怎么算
  • 小规模纳税人可以开专票吗
  • 老板请客吃饭拿餐饮发票公司报销怎么账务处理?
  • 收到专票有误,已跨月未认证,销售方不红冲咋办
  • 公司增加注册资金需要实缴吗
  • 残疾人就业保障金是什么意思啊
  • 非货币性资产交换的会计处理
  • 三证合一后的税务登记证查询方法
  • 苹果电脑怎么快速
  • PHP mysql_result()函数使用方法
  • 台湾中原大学相当于大陆几本
  • 手把手怎么样
  • php单例模式demo
  • php pulsar
  • 影响安全库存的因素包括
  • 小规模纳税人2023年出售使用过的
  • 交暖气费可以开单位发票吗
  • 哪个光圈值最大
  • 南美貘叫什么
  • 资产负债表和利润表的利润不一致
  • 企业生产车间发生的直接材料费用属于生产费用
  • 精选100个Python实战项目案例,送给缺乏实战经验的你
  • es6从入门到实战
  • 待抵扣进项税额是什么情况下用的
  • 预缴税款怎么做会计分录
  • db2原理
  • mongodb项目使用说明
  • 企业所得税预缴少缴纳了,需要交滞纳金吗?
  • Sql server 2008 express远程登录实例设置 图文教程
  • 非公司员工可以报销差旅费吗
  • 无票收入怎么计算
  • 经营过程中借股怎么处理
  • 当天开具的发票当天不能勾选认证吗?
  • 企业所得税留抵税额
  • 年末转出未交增值税借方余额怎么处理
  • 个体工商户在什么情况下需要纳税
  • 使用sql查询
  • MySQL 5.5.x my.cnf参数配置优化详解
  • ubuntu系统中安装微信步骤
  • win8系统出现蓝屏怎样处理
  • centos文件备份
  • win8在哪里卸载软件
  • Retina MacBook和10.10.3支持更快的NVMe SSD接口
  • linuxftp服务器
  • win10系统如何创建家庭组
  • win10系统升级后共享打印机不能用
  • Unity3d Asset Serialization 设置错误导致SVN文件不能同步
  • div垂直居中怎么设置css
  • 基于是什么意思
  • windows常用网络命令的使用
  • javascript中对象的含义
  • Android 自定义view炫酷动画
  • linux给本地用户发邮件
  • 西安税务机关
  • 结转城市维护建设税
  • 广州市地方税务局规费服务中心
  • 税务数据清理变态
  • 北京身份证网上换证流程
  • 辽宁朝阳丧葬费标准2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设