Oracle 统计最近6个月满足条件的客户

SELECT
    c.*
    FROM
    AVERAGE_DAILY_OVERDRAFT c,CUSTOMER_ACCOUNT_INFORMATION b
    WHERE
    TO_DATE (c.YEAR||c.MONTH, ‘YYYYMM‘) <![CDATA[ <= ]]>SYSDATE
    AND TO_DATE (c.YEAR||c.MONTH, ‘YYYYMM‘) > ADD_MONTHS (SYSDATE, - 6)
    AND not EXISTS(
    select * from AVERAGE_DAILY_OVERDRAFT a where a.ACCOUNT_NUMBER = c.ACCOUNT_NUMBER
    and a.ALL_DUE_STATUS = 0
     )
   AND c.ACCOUNT_NUMBER=b.ACCOUNT_NUMBER
   and c.TOTAL_AMOUNT_OVERDRAFT/b.CREDIT_AMOUNT >=0.5

时间: 2024-10-17 23:40:56

Oracle 统计最近6个月满足条件的客户的相关文章

Oracle 统计信息介绍

统计信息自动执行需要以下条件满足: dba_autotask_task 字段status值ENABLED dba_autotask_client 字段status值ENABLED dba_autotask_window_clients 字段AUTOTASK_STATUS值ENABLED OPTIMIZER_STATS值ENABLED WINDOW_ACTIVE值FALSE dba_scheduler_windows 字段ENABLED值TRUE 字段ACTIVE值FALSE 字段DURATION

【统计商户24个月连续流水总月数存储过程】

[统计商户24个月连续流水总月数存储过程]删除存储过程SQL> drop procedure checklen; Procedure dropped创建存储过程SQL> CREATE OR REPLACE PROCEDURE checklen(val in varchar2,resultval out number) as    maxlen number;    nowlen number;    begin    maxlen := 0;    nowlen := 0;        fo

MySQL 统计过去12个月的数据(包括本月)

1.问题 需要统计过去12个月的数据,如现在是2015年4月,那么我们需要统计从2014年5月到2015年4月的数据情况.而这12个月中,如果这个月没有数据的,则统计为0. 原始数据表如下图,数据是按分钟存储的.也就是说要统计每个月一共有多少条body_infared大于0的数据. 2.处理过程 2.1 获取12个月到现在的数据 select * from device_data t where DATE_FORMAT(t.time,'%Y-%m')> DATE_FORMAT(date_sub(

Oracle统计用户所有表的行数

DECLARE   CURSOR c1 is select table_name from user_tables;   V_TABLE_NAME user_tables.TABLE_NAME%TYPE;   V_CNT number;   V_SQL varchar2(2000); BEGIN   FOR V_TABLE_NAME in c1 loop      V_SQL := 'select count(1) from ' || V_TABLE_NAME.table_name;      

Oracle统计、分析和优化环境配置

Oracle统计.分析和优化环境配置 创建批处理文件Login.bat 用于初始化设置系统环境 Login.bat @echo off title eoda mode con cols=140 color 85 set ORACLE_SID=muphy sqlplus eoda/foo 创建数据库脚本文件login.sql 用于初始化SQL*PLUS运行环境 define _editor=vim  --设置编辑器为vim set serveroutput on size 1000000 --设置

oracle 统计指定条件下所有表的行数

今天 需要统计下指定用户下的所有表的行数,于是采用了oracle 内置视图: select table_name,num_rows  from dba_tables where owner = 'USERNAME';  或 select table_name,num_rows from user_all_tables ; 可是统计结果发现,有的表的统计数量和实际数量有差异,因此,直接自己写了个统计指定条件下表的记录的sql: --创建一个表用于存储计算结果 create table t_temp

Oracle统计某一年中的1-12个月的数据总和

查询2015年1月到12个月的所有实有人口数量和往年2014年1月到12个月的实有人口数量,没有的月份显示 人口数量为0.类似效果如图 创建表 ? 1 2 3 4 5 6 create table PERSONSITUATION (   id    NUMBER not null,   rdate DATE,   nums  NUMBER ) 插入数据 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 insert into PERSONSITUATION (id

Oracle 统计某一年中的1-12个月的数据总和(非常实用)

实战案例 查询2015年1月到12个月的所有实有人口数量和往年2014年1月到12个月的实有人口数量,没有的月份显示 人口数量为0.类似效果如图 创建表 create table PERSONSITUATION ( id NUMBER not null, rdate DATE, nums NUMBER ) 插入数据 insert into PERSONSITUATION (id, rdate, nums) values (1, to_date('26-01-2015', 'dd-mm-yyyy'

Oracle统计信息不准(谓词越界)造成的性能问题

什么是谓词越界?谓词越界其实就是SQL语句的查询条件超出了数据库统计信息所记录的范围.谓词越界会导致Oracle优化器错误的选择SQL语句的执行计划,导致性能问题. 这里举一个简单的例子说明谓词越界导致优化器选择了错误的执行计划. create table t1 (col1 number); create index idx_t1 on t1(col1); begin for i in 1..10000 loop insert into t1 values (i); end loop; comm