--时间显示函数
CREATE OR REPLACE FUNCTION MakeDateByMinute(minutes int)
RETURN varchar2
AS
day int;
hour int;
minute int;
BEGIN
day := Floor(minutes / 1440);
hour := Floor( ( minutes - (day * 1440) )/ 60 );
minute := Floor( minutes - day * 1440 - hour * 60 );
if minutes>0 then
RETURN to_char(day)|| '天'
||to_char(hour) || '小时'
||to_char(minute) ||'分钟';
else
return '小于1分钟';
end if;
END;
--租还车表 统计租车还车成一条记录sql
create or replace view bike_borrow_and_return_view as
select b.b_website_name,r.r_website_name,b.b_tenancy_date,r.r_tenancy_date,MakeDateByMinute(ROUND(TO_NUMBER(r.r_tenancy_date - b.b_tenancy_date) * 24*60)) date_discrepancy,b.bike_no,b.name,b.website_id,r.website_id r_website_id,decode(r.tenancy_price,null,'0.00',r.tenancy_price) tenancy_price from
(select ROW_NUMBER() OVER(PARTITION BY f.bike_rfid ORDER BY f.tenancy_date) as XH,s.website_name b_website_name,f.tenancy_date b_tenancy_date,t.bike_no,t.bike_rfid,c.name,s.website_id from fz_t_ref_card f
left join sm_t_website s on s.website_id=f.tenancy_website_id left join fz_t_bike_info t on t.bike_rfid=f.bike_rfid left join fz_t_associator c on c.card_id =f.card_id where f.ref_type=0
)b left join
(select ROW_NUMBER() OVER(PARTITION BY f.bike_rfid ORDER BY f.tenancy_date) as XH,s.website_name r_website_name,f.tenancy_date r_tenancy_date,f.bike_rfid,f.card_id,s.website_id,ltrim(to_char(f.tenancy_price / 100, '99999999990.99')) tenancy_price from fz_t_ref_card f
left join sm_t_website s on s.website_id=f.tenancy_website_id where f.ref_type=1
) r on b.XH=r.XH and b.bike_rfid=r.bike_rfid;
--网点流量统计sql
select t.b_website_name,
t.r_website_name,
count(*) bike_num,
t.b_pile,
decode(t.b_pile,0,'0%',round(count(*)/ t.b_pile, 4) * 100 || '%') b_v,
t.r_pile,
decode(t.r_pile,0,'0%',round(count(*) / t.r_pile, 4) * 100 || '%') r_v
from (select row_number() OVER(partition by bba.b_website_name order by bba.b_website_name) val,
bba.b_website_name,
bba.r_website_name,
bba.b_tenancy_date,
bba.r_tenancy_date,
(select count(m.bikepile_id)
from fz_t_bikepile_manager m
where m.website_id = bba.website_id) b_pile,
(select count(m.bikepile_id)
from fz_t_bikepile_manager m
where m.website_id = bba.r_website_id) r_pile
from bike_borrow_and_return_view bba
) t where 1=1
and to_char(t.b_tenancy_date, 'yyyy-mm-dd') = to_char(sysdate,'yyyy-mm-dd') and to_char(t.r_tenancy_date, 'yyyy-mm-dd') = to_char(sysdate,'yyyy-mm-dd')
group by b_website_name,r_website_name,t.b_pile,t.r_pile
--站点借还车率统计sql
select t.website_name,t.website_no,t.b_bike_num,t.r_bike_num,
decode(t.pile,0,'0%',round(t.b_bike_num/t.pile,4)*100 ||'%') b_bikerate,
decode(t.pile,0,'0%',round(t.r_bike_num/t.pile,4)*100 ||'%') r_bikerate,
t.b_bike_whenlong from(select tw.website_name,tw.website_no,
count(bb.website_id) b_bike_num,count(bb.r_website_id) r_bike_num,
(select count(m.bikepile_id) from fz_t_bikepile_manager m
where m.website_id = bb.website_id) pile,
MakeDateByMinute(sum(ROUND(TO_NUMBER(bb.r_tenancy_date -
bb.b_tenancy_date) * 24 * 60))) b_bike_whenlong
from bike_borrow_and_return_view bb
left join sm_t_website tw on bb.website_id = tw.website_id
--where ('#' is null or tw.area_id in (@))
group by tw.website_name,tw.website_no,bb.website_id ) t order by t.website_no
分享到:
相关推荐
Sql记录集生成脚本工具是一种实用程序,专为数据库管理员和开发人员设计,它能够方便地将数据库中的记录集转换为SQL脚本。这个工具的主要功能是将表的数据转化为一系列的INSERT语句,使得用户可以轻松地备份数据,...
oracle笔记pl_sql基本语法记录类型01,有具体的代码案例!
BoneCP 数据源和 Hibernate 的 show sql 都是用来调试和监控数据库操作的工具,但在这篇文章中,我们将探讨为什么 BoneCP 在记录 SQL 方面可能比 Hibernate 的 show sql 更具优势。 首先,让我们了解 BoneCP 和 ...
**二、PL/SQL记录和表** 1. **记录(Record)**:PL/SQL允许我们定义自定义的数据结构,称为记录,可以包含多个字段。记录常用于在程序中模拟数据库表格的行,便于数据处理和操作。 2. **表(Table)**:PL/SQL中的...
- 动态SQL可以将结果集映射到PL/SQL记录类型,这使得可以方便地处理多列结果。例如,可以创建一个记录类型来匹配表格的列,然后使用INTO子句将查询结果直接赋值给记录变量。 4. **动态调用存储过程或函数**: - ...
SQL查找某记录的前后N条数据 SQL查找某记录的前后N条记录
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在SQL Server环境中查询特定时间段内的记录,尤其是本月、本周、本季度以及本年的记录。以下是对这些知识点的详细阐述: ### 一、...
为了有效地管理和解决这个问题,我们可以利用Mybatis的拦截器机制来自动检测并记录慢SQL。下面我们将详细介绍如何通过Mybatis拦截器实现这一功能。 首先,了解Mybatis拦截器的基本概念。Mybatis拦截器(Interceptor...
在“基于SQL server 2008数据库的ifix操作记录教程.docx”文档中,你将找到详细的操作步骤,涵盖了如何设置ifix与SQL Server的连接,如何配置ifix以记录其对数据库的每一次操作,以及如何确保这些记录的完整性。...
### PL/SQL 复合数据结构详解:记录与集合 #### 一、概述 PL/SQL(Procedural Language for SQL)是Oracle数据库提供的一种强大的编程语言,它扩展了SQL的功能,支持复杂的业务逻辑实现。在PL/SQL中,复合数据结构...
### SQL查询重复记录方法大全 在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录...
组态王报警记录存储到SQL数据库中 组态王是一种流行的工业自动化软件,广泛应用于制造业、能源、交通等领域。该软件可以实现实时数据采集、监控和控制,提高生产效率和产品质量。但是,组态王的报警记录功能缺乏...
二、SQL记录数统计 统计SQL表中的记录数,可以使用SQL的`COUNT(*)`函数。在C#中,我们可以通过SqlCommand对象执行SQL查询并获取结果。以下是一个示例: ```csharp string query = "SELECT COUNT(*) FROM TableName...
根据提供的标题、描述以及部分内容,本文将详细介绍使用SQL删除数据库表中的重复记录的不同方法。在实际操作中,去除重复数据是数据库管理中的常见需求之一,尤其是当数据来源于多个不同的源或者由于历史原因导致...
SQL 语句查询本周记录、本月记录、本季度记录、本年记录是数据库查询中常见的操作。本文将为您提供 MySQL 和 SQL Server 两种数据库管理系统的查询语句,帮助您快速实现这些查询操作。 查询本周记录 MySQL 中,您...
本文将深入探讨如何使用SQL语句来删除最老的记录以及如何根据特定条件进行记录删除,我们将详细解析三种不同的方法,并通过实际代码示例来加深理解。 ### 方法一:使用子查询删除最老记录 第一种方法是利用子查询...
"导出SQL数据库记录"这一主题涉及到SQL Server 2000、2005和2008三个版本,这些都是微软提供的关系型数据库管理系统,广泛应用于企业级的数据存储和处理。以下是对这个主题的详细解释: 1. **SQL Server数据库导出*...
北大青鸟sql1.增加学生记录.sql 北大青鸟sql1.增加学生记录.sql 北大青鸟sql1.增加学生记录.sql 北大青鸟sql1.增加学生记录.sql
MySQL数据库系统提供了一种记录所有执行过的SQL语句的功能,这对于调试、性能分析以及安全监控非常重要。本篇文章将详细介绍如何在MySQL中开启这个功能。 ### 概述 记录MySQL执行过的SQL语句可以帮助我们理解...
这份“SQL学习笔记+记录sql各种应用”涵盖了SQL的基础概念、语法以及在实际工作中的多种应用。 一、SQL基础 1. 数据库与表:SQL中的数据库是由一个或多个表组成的集合,表由行和列构成,每一行代表一条记录,每一列...