oracle 复杂语句
select nvl(sum1,'0')as sum1,nvl(sum2,'0') as sum2,da2 from(
select count(*) as sum1,substr(APPLY_DATE,6,2) as da1 from TBSHIPRUNCHECKAPPLY where apply_type like '%建造检验%'
and CHECK_TYPE like '%新建%' and CHECK_ADDRESS like '%南京%' and to_date(APPLY_DATE,'yyyy-MM-dd')
between to_date('2012-12-26','yyyy-mm-dd') and to_date('2013-12-25','yyyy-mm-dd') group by substr(APPLY_DATE,6,2)) a
left join (
select count(*) as sum2,substr(APPLY_DATE,6,2) as da2 from TBSHIPRUNCHECKAPPLY where apply_type like '%建造检验%'
and CHECK_TYPE like '%新建%' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) and to_date(APPLY_DATE,'yyyy-MM-dd')
between to_date('2012-12-26','yyyy-mm-dd') and to_date('2013-12-25','yyyy-mm-dd')
group by substr(APPLY_DATE,6,2)) b on a.da1 = b.da2 order by da2
SELECT '改建' as checktypename,COUNT (CASE WHEN substr(APPLY_DATE,6,2)='01' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm1,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='01' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm1,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='02' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm2,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='02' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm2,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='03' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm3,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='03' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm3,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='04' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm4,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='04' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm4,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='05' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm5,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='05' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm5,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='06' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm6,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='06' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm6,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='07' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm7,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='07' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm7,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='08' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm8,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='08' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm8,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='09' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm9,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='09' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm9,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='10' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm10,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='10' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm10,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='11' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm11,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='11' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm11,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='12' and CHECK_ADDRESS like '%南京%' then 1 end) as bdm12,
COUNT (CASE WHEN substr(APPLY_DATE,6,2)='12' and (CHECK_ADDRESS not like '%南京%' or CHECK_ADDRESS is null) then 1 end) as wdm12
FROM TBSHIPRUNCHECKAPPLY where apply_type like '%建造检验%'
and CHECK_TYPE like '%改建%' and to_date(APPLY_DATE,'yyyy-MM-dd')
between to_date('2012-12-26','yyyy-mm-dd') and to_date('2013-12-25','yyyy-mm-dd')
unoin 的时候 group by 不要每个都加 只能在union 之后 加一次就好了.
oracle 复杂语句的更多相关文章
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- 45 个非常有用的 Oracle 查询语句
这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快 ...
- Oracle sql语句执行顺序
sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构 ...
- Oracle Update 语句语法与性能分析 - 多表关联
Oracle Update 语句语法与性能分析 - 多表关联 为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create ...
- Sqlserver2008和Oracle分页语句
SqlServer 分页语句 select StuID ,StuNo,StuName,Age,Sex, ClassName ClassName from (select *, row_number() ...
- Oracle SQL语句追踪
Oracle SQL语句追踪 1 SQL语句追踪 追踪SQL语句的执行过程需要在Oracle服务器端进行,Oracle服务器端会检测并记录访问进程所执行的所有SQL语句.下面使用的命令都是在命令行 ...
- Oracle执行语句跟踪(2)——使用10046事件实现语句追踪
接上篇博文Oracle执行语句跟踪(1)--使用sql trace实现语句追踪,一旦我们通过会话追踪获取到超时事物的执行语句,就可以使用10046事件对语句进行追踪. 启用10046事件追踪的方式 S ...
- 常用的Oracle数据库语句 (待更新完毕)
一.常用的查询语句 1.1 常用查询 查表中有多少个字段 select count(*) from user_tab_columns where table_name=upper('表名') 或者 s ...
- 40多个非常有用的Oracle 查询语句
给大家介绍是40多个非常有用的Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有Oracle 开发者都必备的技能,所以快快收藏吧! 日期 ...
- 45个非常有用的 Oracle 查询语句小结
45个非常有用的 Oracle 查询语句小结 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 ...
随机推荐
- epoll 简单介绍及例子
第一部分:Epoll简介 . 当select()返回时,timeout参数的状态在不同的系统中是未定义的,因此每次调用select()之前必须重新初始化timeout和文件描述符set.实际上,秒,然 ...
- java RMI
import java.rmi.*; public interface Hello extends Remote { public String getGreeting() throws Remote ...
- nrf51822-主从通信分析2
解决第三个问题:如何使能从机上的特征值的 notify功能,使其能通过notify方式发送数据 使能从机的notify功能是通过写0x0001到从机的那个具有notify功能的特征值的CCCD描述 ...
- 移动web开发--meta 之 viewport
常用的 viewport meta 如下: 1 <meta name="viewport" content="width=device-width,initial- ...
- Redis学习笔记(2)-String
package cn.com; import java.util.List; import redis.clients.jedis.Jedis; public class Redis_String { ...
- [LeetCode]题解(python):038-Count and Say
题目来源 https://leetcode.com/problems/count-and-say/ The count-and-say sequence is the sequence of inte ...
- http请求及模拟浏览器发送http请求
/** *测试新增图片 * @throws IOException * @throws HttpException * @throws SAXException * @th ...
- 将一个UIView对象的内容保存为UIImage
+ (UIImage*)imageFromView:(UIView*)view{ UIGraphicsBeginImageContextWithOptions(view.bounds.size, YE ...
- typedef 和 const
1. typedef 允许你为各种数据类型定义新名字 #include <stdio.h>typedef char *ptr_to_char; //这让我看起来,好奇怪,不好读void m ...
- SQLSERVER 数据库查看各表的记录数
select a.name as 表名,max(b.rows) as 记录条数 from sysobjects a ,sysindexes b where a. ...