ORACLE-SQL(二) 2025598编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

ORACLE-SQL(二)

Created by Marydon on 2017-06-01 15:07

一、SQL语句

  (二)提升篇

    1.2.3 分页,分组,计数,排序

复制代码
/**
* 返回数据
* FORGID 医疗机构ID
* FRCODE 县区编码
* FORGNAME 医疗机构名称
* FCENNAME_TEM_COUNT 名称不对称计数
* ISNULLCENCODE_COUNT 未对照计数
* TOTALCOUNT L_DIAITEM_ERROR表中共有多少条数据
*/
SELECT T3.*
FROM (SELECT T2.*, ROWNUM ROWNO
      FROM (SELECT T.FORGID,
                   T1.FRCODE,
                   T1.FORGNAME,
                   SUM(NVL(T.NCCW, 0)) FCENNAME_TEM_COUNT,
                   SUM(NVL(T.WDZ, 0)) ISNULLCENCODE_COUNT,
                   TOTALCOUNT
             FROM L_DIAITEM_ERROR T, TORGANIZATION T1
             WHERE T.FORGID = T1.FORGID
             GROUP BY T.FORGID, T1.FORGNAME, T1.FORGSEQ, T1.FRCODE
             ORDER BY T1.FORGSEQ) T2
     WHERE ROWNUM <= V_END) T3
WHERE T3.ROWNO >= V_START;
复制代码

    注意:

      a.TOTALCOUNT是已存在的一个变量,这里不作为关注重点;      

      b.被group by的数据,要想查询表中的某个字段,有且只有两种方式:

        方式一:

          在group by 后面加上想要查询出来的字段      

        方式二:

          对于数字列,使用求和函数sum()实现查询

      否则,会报错:不是group by 表达式      

    CreateTime--2017年1月20日17:19:04

    1.2.4 不同数据库间建立连接

      情景:一个库访问另一个库的某张表

    UpdateTime--2017年7月17日16:02:26

     1.2.7 将查询的计数结果列转行

    实例:对两表满足条件的数据进行计数,并横向展示查询结果

      sql1:纵向展示(雏形)

复制代码
SELECT COUNT(1) COUNTRESULT
  FROM CONSULT_INFO T
 WHERE T.CON_ORG_ID = '134557'
   AND T.CONSULT_STATUS = 0
UNION ALL
SELECT COUNT(1) COUNTRESULT
  FROM OUTPATIENT_CONSULT_INFO T2
 WHERE T2.CON_ORG_ID = '134557'
   AND T2.CONSULT_STATUS = 0
复制代码

      查询结果:

      sql2:两行两列展示

复制代码
SELECT COUNT(1) AS COUNTRESULT1, 0 AS COUNTRESULT2
  FROM CONSULT_INFO T
 WHERE T.CON_ORG_ID = '134557'
   AND T.CONSULT_STATUS = 0
UNION ALL
SELECT 0 AS COUNTRESULT1, COUNT(1) AS COUNTRESULT2
  FROM OUTPATIENT_CONSULT_INFO T2
 WHERE T2.CON_ORG_ID = '134557'
   AND T2.CONSULT_STATUS = 0
复制代码

      查询结果:

      sql3:最终实现

复制代码
SELECT SUM(COUNTRESULT1) COUNTRESULT1, SUM(COUNTRESULT2) COUNTRESULT2
  FROM (SELECT COUNT(1) AS COUNTRESULT1, 0 AS COUNTRESULT2
          FROM CONSULT_INFO T
         WHERE T.CON_ORG_ID = '134557'
           AND T.CONSULT_STATUS = 0
        UNION ALL
        SELECT 0 AS COUNTRESULT1, COUNT(1) AS COUNTRESULT2
          FROM OUTPATIENT_CONSULT_INFO T2
         WHERE T2.CON_ORG_ID = '134557'
           AND T2.CONSULT_STATUS = 0)
复制代码

 

      查询结果:

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(598)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。