select b.*, 

b.model_ent_name+cast(m.year as varchar)as modelname,

m.index_value as val



into #tb

from

(

select a.*,erm.model_ent_name

from

(select w.uuid,w.indexdef_id,

i.index_name, i.index_def,

case when w.years=2014 then w.actual_value else 0 end as k1,

case when w.years=2013 then w.actual_value else 0 end as k2,

case when w.years=2012 then w.actual_value else 0 end as k3,

case when w.years=2011 then w.actual_value else 0 end as k4,

case when w.years=2010 then w.actual_value else 0 end as k5

from bm_work w,bm_index i 

where w.indexdef_id=i.uuid 

and w.ent_id='2c90e4da49514c750149515eb56f0003' and w.summary_state=2

 and years=2014

)a left join bm_ent_rel_me erm on a.uuid=erm.bmwork_id

 

)b





left join bm_model_ent m on b.indexdef_id=m.index_def_id and b.model_ent_name=m.model_ent_name





declare @sql varchar(8000)

select @sql=isnull(@sql+',','')+modelname from #tb group by modelname

set @sql = 'select * from #tb pivot (sum(val) for modelname in ('+@sql+') )a'

exec (@sql)

drop table #tb

须要将上图变为下图结果。

实现行转列,及把第一张图片中红圈的部分的内容放置到 列上。作为列的标题。。

declare @sql varchar(8000)

select @sql=isnull(@sql+',','')+modelname from #tb group by modelname                       

set @sql = 'select * from #tb pivot (sum(val) for modelname in ('+@sql+') )a'                      //val 为值      modelname为须要将行转列 

exec (@sql)

//写这样的sql的思路就是,先自己写出类似图一 的结果。确定那一个须要行转列。。

这里我们就是须要modelname 这一列的值。都放过去作为列的属性名。。。看图两个圈的描写叙述吧。

详细本人也不是非常好描写叙述。

sql 理解的更多相关文章

  1. sql 理解视图

    可以看作是定义在sqlserver上的虚拟的表,本身并不存储数据,仅仅存储一个select语句和涉及的表的引用 通过视图,客户端不再需要知道底层表结构和其之间的关系,视图提供了一个统一访问数据的接口 ...

  2. [SQL] 理解SQL SERVER中的逻辑读,预读和物理读

    SQL SERVER数据存储的形式 在谈到几种不同的读取方式之前,首先要理解SQL SERVER数据存储的方式.SQL SERVER存储的最小单位为页(Page).每一页大小为8k,SQL SERVE ...

  3. Java 程序员在写 SQL 时常犯的 10 个错误

    Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用“模式-模式”,举个例子,模式可 ...

  4. 十九、oracle pl/sql简介

    一.pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展.pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语 ...

  5. oracle pl/sql 简介

    一.pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展.pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语 ...

  6. Elasticsearch SQL

    es sql是一个X-pack组件 ,允许对es执行类似sql的查询,可以将Elasticsearch SQL理解为一个编译器,既能理解es,又能理解sql.可以通过利用es,实施大规模实时读取和处理 ...

  7. Java 程序员容易犯的10个SQL错误

    Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用“模式-模式”,举个例子,模式可 ...

  8. mybatis入门基础(七)----延迟加载

    一.什么是延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...

  9. MyBatis学习--延迟加载

    简介 在resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能.例如:我们查询订单并 ...

随机推荐

  1. C#获取MySql 数据常用的代码

    1.读取 public DataTable ExecuteDataTable(string SQLString) { using (MySqlConnection connection = new M ...

  2. git基本操作:使用git将本地代码上传到GitHub

    一.创建github repository(仓库) 1.登录GitHub 创建GitHub仓库,首先需要登录GitHub,GitHub网址:https://github.com.如果没有GitHub账 ...

  3. php 超时 解决办法 (Maximum execution time of 30 seconds exceeded)这个问题?

    1. 修改是APACHE设置,在PHP.INI中找到一个参数: max_execution_time 将后面的值调大,然后重新启动APACHE服务(centos: service httpd rest ...

  4. jq 智能搜索

    案例:http://www.runoob.com/jqueryui/example-autocomplete.html <input  type="text" style=& ...

  5. 我写的javascript常用静态方法类,分享给大家

    util=function(){    return {        $:function(id){            return document.getElementById(id);   ...

  6. TI webench 一款不错的软件

      之前在一些电子论坛的网站看到过关于TI webench的介绍,今天适用了一下,确实功能很强大,设计内容可以输入你所要设计的内容,包括下面内容: 下图是笔者设计的一个FPGA供电系统,采用5V输入, ...

  7. C#提高------------------------Attribute自定制概念

    C#基础知识梳理系列八:定制特性Attribute   摘 要 设计类型的时候可以使用各种成员来描述该类型的信息,但有时候我们可能不太愿意将一些附加信息放到类的内部,因为这样,可能会给类型本身的信息描 ...

  8. .NET WebAPI 正确抛出错误详细信息

    try { ... } catch (Exception e) { //在webapi中要想抛出异常必须这样抛出,否则之抛出一个默认500的异常 var resp = new HttpResponse ...

  9. 制作CentOS fence-agents 镜像

    1, Download centos7 iso file: Centos7 ISO download: http://buildlogs.centos.org/rolling/7/isos/x86_6 ...

  10. iOS:自定义字体

    转自: <iOS tips: Custom Fonts> Post by Steve Vlaminck My good friend google told me that using a ...