oracle一条sql语句统计充值表中今天,昨天,前天三天充值记录

select NVL(sum(case when create_date_time>=to_date(‘2014-11-24 00:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘)
and create_date_time<=to_date(‘2014-11-24 23:59:59‘,‘yyyy-mm-dd hh24:mi:ss‘) then amount end),0) today
,NVL(sum(case when create_date_time>=to_date(‘2014-11-23 00:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘)
and create_date_time<=to_date(‘2014-11-23 23:59:59‘,‘yyyy-mm-dd hh24:mi:ss‘) then amount end),0) yesterday,NVL(sum(case when create_date_time>=to_date(‘2014-11-22 00:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘) and create_date_time<=to_date(‘2014-11-22 23:59:59‘,‘yyyy-mm-dd hh24:mi:ss‘) then amount end),0) TheDayBeforeYesterday from t_pay;

 假设今天是 2014-11-24

时间: 2024-10-08 17:54:04

oracle一条sql语句统计充值表中今天,昨天,前天三天充值记录的相关文章

一条SQL语句查询两表中两个字段

首先描述问题,student表中有字段startID,endID.garde表中的ID需要对应student表中的startID或者student表中的endID才能查出grade表中的name字段,这时候问题就来了,如果需要一条sql一句同时查出garde表中的两条数据怎么办?(两表的关联字段为 SID) sql="select b.name,c.name as name2 from student a,garde b,grade c where a.SID=b.SID and a.SID=c

Oracle一条SQL语句时快时慢

今天碰到一个非常奇怪的问题问题,一条SQL语句在PL/SQL developer中很慢,需要9s,问题SQL: SELECT * FROM GG_function_location f WHERE f.parent_id ='03000000000001';  表GG_function_location有5千万的数据,parent_id上是有索引的. 诊断第一步:就在PL/SQL developer中按F5,看到的执行计划是走索引的,应该不会慢啊. 第二步:在sqlplus中用autotrace

用SQL语句将数据表中的数据保存为JSON格式

没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL 语句: SELECT '{"id":'+CONVERT(NVARCHAR(20),id)+',"areacode":'+areacode+',"areaname":"'+areaname+'","paremt_areac

oracle用sql 语句如何向表中插入时间?

有关日期的操作中,更多的是涉及系统当前时间,用sysdate表示即可,如果是插入其他非系统时间的日期类型数据的话,用to_date转换再插入就可以了.例: 1 insert into 表(c_date) values(to_date('20120927 20:09:47','YYYYMMDD HH24:MI:SS')); 另外:有些日期字段中会有一些默认数据,所以to_date还是挺有用的.如: 1 startdate date DEFAULT to_date('2000-01-01','yyy

SQL 一条SQL语句 统计 各班总人数,男女各总人数 ,各自 男女 比例

select  sClass 班级,count(*)  班级学生总人数,sum(case when sGender=0 then 1 else 0 end) 女生人数,sum(case when sGender=0 then 1 else 0 end)*1.0/count(*)女生所占比例,sum(case when sGender=1 then 1 else 0 end) 男生人数,sum(case when sGender=1 then 1 else 0 end)*1.0 /count(*)

sql语句查询一个表中某一列的相同数据

1.找出这列中有相同内容的列的数据.代码如下: select 列名 from 表名 group by 列名 having count(列名) > 1 2.把这些有相同内容的记录,查出来.代码如下: select 列名 from 表名 where 列名 in (select 列名 from 表名 group by 列名 having count(列名) > 1)

使用一条sql查询多个表中的记录数

方法一: select t1.num1,t2.num2,t3.num3 from (select count(*) num1 from table1) t1, (select count(*) num2 from table2) t2, (select count(*) num3 from table3) t3 方法二: select sum(t.num1),sum(t.num2),sum(t.num3) from ( select count(*) num1,0 as num2,0 as nu

sql从学生成绩表中查出各科成绩分布最多的记录

题目:有一个数据表student,包含name(姓名),dept(科目),score(成绩)三个字段,现在要求查出每科成绩分数分布最多的项,如语文成绩80分最多,就输出语文80分的人数,数学90分的人最多,输出数学90分的人数: 测试数据: insert into student values ("deng","80","语文"); insert into student values ("zhang","80&qu

关于oracle sql语句查询时表名和字段名要加双引号的问题

oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动