精华内容
下载资源
问答
  • 多表相同字段合并查询

    千次阅读 2018-07-09 15:26:17
    几张字段相同的,合并查询,使用union all全部合并,合并前进行条件查询减少数据库压力select sumdata.orgcode,SUM(sumdata.runnum),SUM(sumdata.runtime) FROM((select orgcode,runnum,runtime from DATA_XTS_HOUR ...

    几张字段相同的表,合并查询,使用union all全部合并,合并前进行条件查询减少数据库压力


    select sumdata.orgcode,SUM(sumdata.runnum),SUM(sumdata.runtime) FROM(
    (select orgcode,runnum,runtime from DATA_XTS_HOUR WHERE orgcode LIKE 'G0008C0800%' AND stand_name_c LIKE '%电流' AND value >= 30) union all 
    (select orgcode,runnum,runtime from DATA_XXST_HOUR WHERE orgcode LIKE 'G0008C0800%' AND stand_name_c LIKE '%电流' AND value >= 30) union all 
    (select orgcode,runnum,runtime from DATA_XJY_HOUR WHERE orgcode LIKE 'G0008C0800%' AND stand_name_c LIKE '%电流' AND value >= 30) union all 
    (select orgcode,runnum,runtime from DATA_XSCR_HOUR WHERE orgcode LIKE 'G0008C0800%' AND stand_name_c LIKE '%电流' AND value >= 30)
    ) as sumdata GROUP BY orgcode

    展开全文
  • 主要介绍了MySQL Union合并查询数据及别名、字段别名用法,结合实例形式较为详细的分析了mysql使用Union合并连接查询数据以及使用as实现别名与字段别名操作,需要的朋友可以参考下
  • SQL如下: SELECT ATableID AS deviceId,AIP AS terminalIp,( aName+ '(' + AIP + ')' ) AS name,'1' AS devParentId ...合并多表: 使用了UNION, 参考这篇博客 。 新增列并赋值: : '3' AS devParentId

    SQL如下:

    SELECT
    			ATableID AS deviceId,AIP AS terminalIp,( aName+ '(' + AIP + ')' ) AS name,'1' AS devParentId
    		FROM
    			ATable
    		WHERE
    			is_active = '1'
    
    	    UNION
    			(
    			SELECT
    				BTableID AS deviceId,BIP AS terminalIp,( bName+ '(' + BIP + ')' ) AS name,'2' AS devParentId
    			FROM
    				BTable
    			WHERE
    				is_active = '1'
    			)
    
    		UNION
    			(
    			SELECT
    				CTableID AS deviceId,CIP AS terminalIp,( cName+ '(' + CIP + ')' ) AS name,'3' AS devParentId
    			FROM
    				CTable
    			WHERE
    				is_active = '1'
    			)
    

    分析:

    字段拼接:( NAME + '(' + ControlIP + ')' ) AS NAME
    合并多表: 使用了UNION,参考这篇博客
    新增列并赋值:'3' AS devParentId

    展开全文
  • SQL将张表的某字段进行统一查询需求结构开始查询总结 需求 查询出所有的人的名字(包括学生和教师) 结构 学生(student),字段:年龄(stu_age)、姓名(stu_name)、性别(stu_sex) …; 教师(teacher),字段...

    SQL将多张表的单个或多个字段进行合并查询

    需求

    查询出所有的人的名字(包括学生和教师)

    表结构

    学生表(student),字段:年龄(stu_age)、姓名(stu_name)、性别(stu_sex) …;
    教师表(teacher),字段:年龄(tea_age)、姓名(tea_name)、性别(tea_sex) …;

    开始查询

    select stu_name as name, sut_sex as sex from student
    -- where ...
    union all
    select tea_name as name, tea_sex as sex from teacher
    -- where ...
    

    总结

    1. 注意:
      – 每张表各自添加where条件
      – 多个字段时需要指定别名

    2. union all 和 union 的区别:
      union: 对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
      union all:对两个结果集进行并集操作,包括重复行,不进行排序;

    展开全文
  • 一、最初(最简单的入门实例,单个分类汇总) 1,查询语句/*药品费用分科室汇总*/ select c.sksxx02,sum(nvl(b.nfyxx06,0))   from yygli60 a,yygli30 b,yygl140 c,yygl101 d
      
    

     一、最初(最简单的入门实例,单个分类汇总)
    1,查询语句/*药品费用分科室汇总*/
    select c.sksxx02,sum(nvl(b.nfyxx06,0))   
         from yygli60 a,yygli30 b,yygl140 c,yygl101 d
         where  b.szybh01 = a.szybh01 and
                      a.sjsdh01=b.sjsdh01 and  
                      b.SFYXX13 = '1'  and                       /*审核标志1*/ 
                     djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and       
                     b.Sfyxx23 ='0010' and  /*用药科室为手术室*/        
                     b.sjflb01 like 'BD01%' and      /*计费类别为BD01药品收入*/ 
                     c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
                     d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
          group by c.sksxx02

    2,查询语句详解。
    先将医嘱表yygli30 b(如下图1)和yygli60 a(结算表),yygl140 c(科室字典表),yygl101 d(基础字典表)关联起来成一个大的非常非常宽的表
    再通过where子句,筛选出结帐时间在2011年7月1号至8月1号的病人的医嘱,以及计费类别凡属于BD01药品收入的,以及用药科室,即登帐科室为手术室的医嘱;
    最后用group by c.sksxx02,即按就诊科室的中文名,分类汇总,注意汇总的是医嘱表费用那一项“sum(nvl(b.nfyxx06,0))    ”。
    所得到的查询结果见下图2

    图1,医嘱表i30

    住院号

    就诊科室

    记费类别

    项目名称

    费用

    执行科室

    2011004123

    妇产科/三病室

    麻醉费

    联合腰麻

    300

    手术室

    2011004123

    妇产科/三病室

    特殊材料费

    联合腰麻包

    100

    手术室

    2011004123

    妇产科/三病室

    西药费

    利多卡因注射液

    0.38

    手术室

    2011004436

    骨病科

    麻醉费

    硬膜外阻滞麻醉

    250

    手术室

     

    图2,查询结果

    科室

    总费用

    妇产科/三病室

    7259.01

    骨病科

    173.88

    骨外科/四病室

    3405.119

    外二科/八病室

    5954.64

    外一科/五病室

    6875.698

    五官科/九病室

    938.189

    二、稍微复杂点的查询(两个字段的分类汇总)
    1,查询语句/*医疗费用按科室分类汇总*/
    select c.sksxx02,d.sjcxx02 as lb,
                sum(nvl(b.nfyxx06,0)) as fy
         from V_ZYJZ b,yygli60 a,yygl140 c,yygl101 d
             where  b.szybh01 = a.szybh01 and
                          a.sjsdh01=b.sjsdh01 and 
                          djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and 
                          b.Szxks01='0010' and                /*限定执行科室*/
                          c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
                          d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
            group by c.sksxx02,d.sjcxx02

    2,查询语句详解。
    先将视图V_ZYJZ b(如下图1)和yygli60 a(结算表),yygl140 c(科室字典表),yygl101 d(基础字典表)关联起来,成一个大表;
    再通过where子句,筛选出结帐时间在2011年7月1号至8月1号的病人的医嘱,以及医嘱执行科室为手术室的医嘱,注意此处医嘱表中的计费类别列未做限定;
    最后用group by c.sksxx02, d.sjcxx02 ,即先按“就诊科室的中文名”,分类汇总,注意汇总的还是医嘱表费用那一项“sum(nvl(b.nfyxx06,0))”,再按“计费类别的中文名”,把各科室的汇总表(如上面单个分类汇总语句的图2,查询结果),分得各详细每一个科室又以不同的计费类别进行费用的汇总。所得到的查询结果见下图2

    图1,视图(长期医嘱表i30   UNION ALL    临时医嘱表i21)

    住院号

    就诊科室

    记费类别

    项目名称

    费用

    执行科室

    2011004123

    妇产科/三病室

    麻醉费

    联合腰麻

    300

    手术室

    2011004123

    妇产科/三病室

    特殊材料费

    联合腰麻包

    100

    手术室

    2011004123

    妇产科/三病室

    西药费

    利多卡因注射液

    0.38

    手术室

    2011004436

    骨病科

    麻醉费

    硬膜外阻滞麻醉

    250

    手术室

     

    图2,多字段汇总的查询结果

    科室

    计费类别

    费用

    妇产科/三病室

    麻醉费

    17725

    妇产科/三病室

    手术费

    36718

    妇产科/三病室

    西药费

    7259.01

    骨病科

    麻醉费

    1546



    三、用"UNION ALL"语句将上面两个sql语句的结果合并
    1,注意第一个语句的查询列数与第二个不一致,于是把第一个语句增加计费类别一列。
    select c.sksxx02,d.sjcxx02 as lb,sum(nvl(b.nfyxx06,0))   
         from yygli60 a,yygli30 b,yygl140 c,yygl101 d
         where  b.szybh01 = a.szybh01 and
                      b.SFYXX13 = '1'  and                       /*审核标志1*/ 
                     djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and
                     a.sjsdh01=b.sjsdh01 and
                     b.Sfyxx23 ='0010' and  /*用药科室为手术室*/        
                     b.sjflb01 like 'BD01%' and      /*计费类别为BD01药品收入*/ 
                     c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
                    d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
          group by c.sksxx02,d.sjcxx02
    2,再使用"UNION ALL",把两个语句合并
        /*第一步,医疗费用按科室分类汇总*/
       select c.sksxx02,d.sjcxx02 as lb,
                sum(nvl(b.nfyxx06,0)) as fy
         from V_ZYJZ b,yygli60 a,yygl140 c,yygl101 d
         where  b.szybh01 = a.szybh01 and
        djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and
        a.sjsdh01=b.sjsdh01 and
            b.Szxks01='0010' and                /*限定执行科室*/
            c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
            d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
       group by c.sksxx02,d.sjcxx02

    Union all  

         /*第二步,药品费用分科室汇总*/
         select c.sksxx02,d.sjcxx02 as lb,sum(nvl(b.nfyxx06,0))   
         from yygli60 a,yygli30 b,yygl140 c,yygl101 d
         where  b.szybh01 = a.szybh01 and
                b.SFYXX13 = '1'  and                       /*审核标志1*/ 
          djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and
          a.sjsdh01=b.sjsdh01 and
                b.Sfyxx23 ='0010' and  /*用药科室为手术室*/        
                b.sjflb01 like 'BD01%' and      /*计费类别为BD01药品收入*/ 
                c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
                d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
          group by c.sksxx02,d.sjcxx02
       
    3,可以使用"order by",对最后的结果排序,注意这个order by是针对整个unioning后的结果集的。
    注意,为了避免合并的多个表排序的列名可能不一致,查询会报错,我们可以使用列序号代替实际列名,如"order by 1, 2"

    /*第一步,医疗费用按科室分类汇总*/
    select c.sksxx02,d.sjcxx02 as lb,
                sum(nvl(b.nfyxx06,0)) as fy
         from V_ZYJZ b,yygli60 a,yygl140 c,yygl101 d
         where  b.szybh01 = a.szybh01 and
        djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and
        a.sjsdh01=b.sjsdh01 and
            b.Szxks01='0010' and                /*限定执行科室*/
            c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
            d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
      group by c.sksxx02,d.sjcxx02
    Union all  
    /*第二步,药品费用分科室汇总*/
    select c.sksxx02,d.sjcxx02 as lb,sum(nvl(b.nfyxx06,0))   
         from yygli60 a,yygli30 b,yygl140 c,yygl101 d
         where  b.szybh01 = a.szybh01 and
                b.SFYXX13 = '1'  and                       /*审核标志1*/ 
          djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd')  and
          a.sjsdh01=b.sjsdh01 and
                b.Sfyxx23 ='0010' and  /*用药科室为手术室*/        
                b.sjflb01 like 'BD01%' and      /*计费类别为BD01药品收入*/ 
                c.sksxx01=b.sfyxx14 and            /*翻译就诊科室*/
                d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
          group by c.sksxx02,d.sjcxx02
    order by 1, 2



    That's all.  Thanks for reading.    (^ _ ^)

    展开全文
  • 有两张 命名为A 和 B A的结构 企业编码 企业名称 领购日期 领购数量 001 上海一线公司 2013-12-25 50 001 上海一线公司 2013-12-28 120 B的结构 企业编码 企业名称 出库日期 数量 001 上海...
  • MySQL单表多字段模糊查询

    千次阅读 2016-07-22 12:09:43
    今天工作时遇到一个功能问题:就是输入关键字搜索的字段不只一个字段,比如 我输入: 超天才 ,需要检索出 包含这个关键字的 name 、 company、job等字段。在网上查询了一会就找打了答案,
  • SQL将查询结果根据一个相同字段合并为一行? 需考虑B的数量比AC的数量比B....不然会丢失数据 select t.名称,a.数量A,b.数量B,c.数量C from ( select 名称from a union select 名称 from...
  • 最近项目一直在用jpa开发,总体来说jpa还是很方便的,较之于mybatis,尤其是做一些简单查询的时候...但是对于复杂查询,比如多表多条件查询,头疼事就来了。这里的条件我是指查询条件的个数不固定,比如最多有五个...
  • sql 查询字段合并

    千次阅读 2018-04-11 10:25:15
    select concat(username,',',age) AS a from user ; 中间是逗号分隔
  • mysql 多表合并查询

    千次阅读 2014-03-17 08:47:36
    要求联合的两个所要查找的数据列要一样( 这里针对的是select * 这种情况吧 ),如果一个中没有另一个字段,可以用NULL 代替。    //union 后中数据的总条数 例: SELECT count(*) from ...
  • 显示数据表多字段合并信息,C++.net源代码编写,
  • 当你有两张或者张表的时候,有相同的字段比如学号,也有不同字段,比如a有年龄,b有出生日期,你需要将这些字段融合的时候,并且中的数据非常,就可以用到这个函数,很快。 a 学号 姓名 ...
  • A: b: c a1 b1 c1 a1 b1 d1 a1 b1 e1 1 2 3 1 2 4 1 2 5 结果:(视图D) F1 F2 F3 1 2 ...
  • 初学SQL查询时,遇到一个问题,有一些没有创建关联或者查询条件不是关联字段的...比如有clother、pants、shoe,都有着共同的属性,当用户想查询Nike品牌的产品时,需要每个表查询一次,然后将结果合并起来,但...
  • 同一个数据库里,两个相同字段但是顺序不同的数据表合并教程 目的: 命令代码: INSERT INTO tuzi_news SELECT id, nv_id, news_title, news_keywords, news_description, news_content, news_author, news...
  • 有一个需求是这样的,三张表,环境周边可能有个小区,要求把小区用逗号隔开 一张主 环境周边 community_surroundings 一张小区信息 community 一张小区与周边对照 community_environment community_...
  • 需求描述如下两个Tb_news(id,title,content...)Tb_product(id,product_name,product_content...)现在要实现对这两个的模糊检索,并把结果集合并。返回的结果要求是这样(page,id,tit,con,pubTime),因为我要写...
  • SQL字段合并

    千次阅读 2019-05-31 18:12:31
    如何将两个字段合成一个字段显示(oracle和sqlserver的区别) @ sql server中如何合并(用Cast()函数) --1、创建模拟的数据--- create table GoodsCate( Mid int not null, Code varchar(10) not null, Name ...
  • sql查询一个字段多列值合并为一列

    千次阅读 2019-03-27 16:22:00
    字段) AS 字段别名 FROM 表名 A WHERE A.字段='字段值' AND a.字段 IN (1,2,3) SELECT GROUP_CONCAT(A.字段) AS 字段FROM 表名 A 转载于:https://www.cnblogs.com/yanchaohui/p/10608415.html...
  • 一: 二: 语句: SELECT `gid`, `station_id`, `zone_id`, `ecode`, `user_id`, `user_name`, `check_user_id`, `check_user_name`, `check_time`, `sign_date`, ...
  • 本篇介绍的合并查询的时候,需要字段关联作为连接条件的操作技巧。Excel Vlookup 函数可以进行列作为条件的关联,但已经需要高级操作技巧,在 Power Query (PQ) 中实现则非常简单,方法基本上和上一篇一样。 ...
  • hive中遇到将两个或字段合并作为一个字段,去取其相关数据,hive中的写法是 select columna,columnb ,concat(a,'-',b,'-',c) column_c from table_name oralce 中是这样写的 select columna,columnb ,a||b||c ...
  • 先直接给出代码: SELECT GROUP_CONCAT(tag)...我们实现合并一个字段个结果用到了mysql 函数 GROUP_CONCAT, 现有一个 table_a 他有一个标签 table_tag 结构如下: 1. table_a : a_id:唯一标识 ……...
  • Oracle 连接查询,字多行字段合并为一行,以逗号分隔的查询SQL  要做什么看标题就懂了。。。  背景:1. 现有二:test_main, test_sub  2. test_sub的m_id是关联test_main的m_id字段的外键,main对...
  • Mysql将多表合并为一张表查询

    千次阅读 2020-11-27 11:10:39
    需求:将销售订单和采购订单相同字段合并成一张表然后进行分页查询。 列如采购数据: SELECT contract_id,group_id,total_quantity,total_amount,created FROM scm_purchase_order ORDER BY created DESC LIMIT...
  • 今天记录一下在oracle中字段如何和合并成一个字段,使用到符号“||” 1、组合查询的数据 1)组合前查询的语句 -- 组合前数据的字段 -- select A.MID CATE_ID,A.Code CATE_CODE,A.Name CATE_NAME,A.GoodsType ...
  • arcgis字段属性相同合并

    万次阅读 多人点赞 2017-12-13 13:50:29
    简单的方法,arctoolbox工具-数据管理工具-制图综合-融合,路网文件是输入要素,设定输出要素类,融合字段勾选路名,勾选创建部分multipart要素,不勾选取消线分割,确定。路名相同的线段就被合并了。 复杂的...
  • Mysql将条数据的某个字段合并

    千次阅读 2018-12-07 12:03:48
    场景:简历标签中一条简历有个标签,将简历的条标签合并为一个字段 使用sql的GROUP_CONCAT() 实现合并 SELECT GROUP_CONCAT(tag_code) AS tag_code,fk_resume_id FROM resume_tag GROUP BY fk_resume_id ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 238,130
精华内容 95,252
关键字:

不同字段多表合并查询