两张表行转列案例

  B表

  A表

  SELECT PV.*
  FROM (
          SELECT
                    b.DeliverLineType,
                    b.DeliverLineTypeName,
                    convert(varchar,CoverageRangeStart)+‘-‘+convert(varchar,CoverageRangeEnd) AS CoverageRange,
                    b.SpecialRegionFactor,
                    a.Charging,
                    convert(varchar,WeightRangeStart)+‘-‘+convert(varchar,WeightRangeEnd) AS WeightRange,
                    a.Inputer,
                    a.StartTime,
                    a.EndTime
          FROM [dbo].[cfg_DeliverLineTypePrice] a
                    INNER JOIN [cfg_DeliverLineType] b ON a.DeliverLineType=b.DeliverLineType
        ) TBL
            PIVOT (MAX(TBL.Charging) FOR WeightRange IN ([0-1000], [1001-2000],[2001-3000],[3001-5000],[5001-100000])) PV 

最终查询效果图,将A表中的数据根据DeliverLineType行转列.

两张表行转列案例

时间: 2024-10-22 13:36:45

两张表行转列案例的相关文章

CROSS JOIN连接用于生成两张表的笛卡尔集

将两张表的情况全部列举出来 结果表: 列= 原表列数相加 行= 原表行数相乘 CROSS JOIN连接用于生成两张表的笛卡尔集. 在sql中cross join的使用: 1.返回的记录数为两个表的记录数乘积. 2.将A表的所有行分别与B表的所有行进行连接. 例如: tableA r1 r2 A B C D tableB r3 r4 1 2 3 4 select * from tableA cross join tableB; return: r1 r2 r3 r4 r1 r2 1 2 r1 r2

excel两张表筛选取数据

为了保证两张表数据不重复,请确保你的原数据表参考的字段无重复(如表一中姓名无重复,那么表二中便可用姓名作为查找条件). 但你的表数据700条不可能出现不重复现象,所以,你的表里面最好能有一个可以作为唯一标识的字段,如工号.ID.编号等.你在自己表中操作时,将你参考的字段与本文档里我用的姓名替换即可. 表一:sheet1=700人总表 表二:sheet2=200人花名册表 需求:表一中的工资数据取到表二对应的人名工资列中 操作: 1.选择sheet2表中,第一行人名:张一 对应的工资一的第一个单元

2016.2.13 (年初六) oracle两张表update方法

A表customers和B表tmp_cust_city有3个相同字段, customer_id,city_name,customer_type 现要根据b表更新a表 更新一个字段情况: update customers a set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id) where exists (select 1 from tmp_cust_city b wher

更新同一张表的整列字段

首先需要先把需要更新的整列结果查询出来. 这里记录下mysql时间的函数:DATE_FORMAT( 字段名, '%Y-%m-%d %H:%i:%s' )  第二个参数是要转换的格式,因为我本来的格式中有毫秒. 以下是举例: 转换的sql :SELECT id AS dd, DATE_FORMAT( created, '%Y-%m-%d %H:%i:%s' ) created2 FROM pe_project_list 整条sql: UPDATE pe_project_listINNER JOIN

mysql左连接右连接(查询两张表不同的数据)

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录:inner join(等值连接) 只返回两个表中联结字段相等的行: 表A数据: 表B数据: 1.查询两张表中都有的记录: sql: SELECT a.* FROM a INNER JOIN b ON a.a_id = b.b_id; 2.查询表A中有,表B中没有的数据: sql: SELECT a.* FROM a LEFT JO

mysql将一张表拆分两张表来使用

"SELECT n1.id, n1.nav_name, n1.nav_info, n2.id iid, n2.nav_name nnav_name FROM cms_nav n1 LEFT JOIN cms_nav n2 ON n1.pid=n2.id WHERE n1.id='$this->id' OR n1.nav_name='$this->nav_name' LIMIT 1" 中国军事 id=26 它的 pid=1 通过pid=1找到他的主类, id=pid=1 id

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join

使用kettle实现两张表的数据更新

请大家指教,使用的Oracle数据库作为数据源,mysql数据库做同步 1.如图所示: 拖进,表输入,插入/更新,write to log, 2.下面进入配置页面,双击”表输入“ 或是右键”编辑步骤“ 如果所示: 配置你的主数据源,就是你要从他上边更新数据的,点击”新建“或是”编辑“进行数据库配置,如图所示, 你的数据库地址ip,数据库,端口号,用户名,密码,点击”Test“进行测试连接,然后关闭进行点击,”获取查询sql语句“,如图所示: 选择你的数据源表,然后点击”确定“ 3.进行插入/更新

两张表如何关联

<form method='post' action='xxx.php'><select name='brand_id'><volist name='channel' id='vo'><option value='{$vo.id}'>{$vo.channel}</option></volist></select></form> select中的name的值是以张表的某个id,option中的{$vo.id}是另