位置: 编程技术 - 正文

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

  • 税务师事务所是代理记账公司吗
  • 个体户注销工商没有收走公章
  • 保税仓发货的商品,每个人的年度消费限额是
  • 扣非净利润为什么比净利润低
  • 季度盈利可以弥补以用以前年度亏损弥补
  • 收到0税率发票是否可以给对方开6税率发票
  • 车险 专票
  • 定期定额纳税申报表应税项应填哪个数
  • 进项税加计扣除什么时候开始的
  • 租赁合同交税一般交多少钱
  • 出口销售收入怎么算
  • 食堂收入支出结构图
  • 电信线路租用的手机
  • 库存商品低价销售违法吗
  • 递延所得税资产是什么
  • 异地施工需要缴纳什么税
  • 代开劳务票税率多少?
  • 3万免税是指什么
  • 企业重组有什么好处
  • 用于研发的材料进项能否加计抵扣1%
  • 房产税征收范围包括商铺吗
  • 现金购入库存商品的分录
  • 个体工商年报填写
  • 不申报税务登记被注销
  • 会计速动比率计算公式
  • 净利润怎么计入所有者权益
  • 1697508513
  • 交通费进项税抵扣计算
  • 小规模可以不报增值税吗
  • 政府会计财政拨款收入借贷方向
  • 其他应付款调整
  • 以土地使用权出资入股未办过户能否抽回
  • 软件充值怎么申请退款
  • 局域网的工作模式及特点
  • php模板引擎语法
  • 资产处置损益计税基础是什么
  • 现金支票提取备用金会计处理
  • 本期发出存货成本是什么意思
  • vue router 路由参数
  • 无追索权有哪些类型
  • 核销对哪些单据对应关系进行的操作
  • 自贸区的税收优惠
  • 租店铺需要什么流程需要注意什么事项?
  • 在建工程转固定资产摘要怎么写
  • 入库材料计入什么科目
  • 应税销售行为有哪些
  • 企业累计预扣个税是什么
  • mysql语句语法
  • 进项发票的作用
  • 存货跌价准备如何影响利润
  • 红字申请单如何打印出来
  • 房地产毛利额纳税调整
  • 普通进项发票怎么做分录
  • 先付款后开票还是先开票后付款
  • 首先我们先了解一下作者英语怎么说呢
  • 购入的无形资产加计扣除怎么算
  • 购买的垃圾袋计入什么科目
  • 作废发票丢了罚款多少
  • sqlserver2008分页查询
  • sql语句大全实例教程
  • Windows下MySQL 5.7无法启动的解决方法
  • 怎么修改注册表的权限
  • 复制糸统
  • win xp怎么样
  • centos设置服务自启动
  • xp系统自动升级win7
  • Win10打开淘宝https被划上红色斜杠的快速解决办法
  • win10系统中哪些软件可以删除
  • windows 8虚拟机
  • win10无法使用内置管理员账户
  • Extjs EditorGridPanel中ComboBox列的显示问题
  • 验证用户输入的密码JavaScript代码加文字
  • perl中qw
  • 30岁亿万富婆
  • python编码函数
  • jquery图片效果
  • VectorField2D
  • JavaScript中的数据类型分为两大类
  • 江苏优抚对象
  • 税务局组织收入存在的问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设