数据库中有一张表Test,其表结构如下所示:
job_id |
dep_id |
item |
name |
no |
000101 |
0900 |
002 |
A001 |
|
000101 |
0900 |
003 |
A002 |
|
000101 |
0901 |
001 |
B003 |
|
000202 |
0900 |
004 |
A005 |
|
000202 |
0902 |
003 |
C004 |
|
000303 |
0901 |
002 |
B004 |
|
000303 |
0901 |
004 |
B005 |
|
规则:其实意思就是让一组中item为002的记录所对应的name优先做no的前缀
1、先以job_id,dep_id分组记录;
2、检查同一组记录中有沒有item为002的记录,如果存在,這一组记录的no都是以item为002这条记录对应的name+当前日期,这一组记录的no都相同;如果一组中不存在item为002的记录那么可以隨便挑一个同组中name字段的值做no的前缀。
其结果如下所示:
job_id |
dep_id |
item |
name |
no |
000101 |
0900 |
002 |
A001 |
A001 -2008-12-25 09:12:06 |
000101 |
0900 |
003 |
A002 |
A001 -2008-12-25 09:12:06 |
000101 |
0901 |
001 |
B003 |
B003-2008-12-25 09:12:06 |
000202 |
0900 |
004 |
A005 |
A005-2008-12-25 09:12:06 |
000202 |
0902 |
003 |
C004 |
C004-2008-12-25 09:12:06 |
000303 |
0901 |
002 |
B004 |
B004 -2008-12-25 09:12:06 |
000303 |
0901 |
004 |
B005 |
B004 -2008-12-25 09:12:06 |
其Sql语句为:
select tt.job_id,tt.dep_id,tt.item,tt.name,
nvl2(t2.no,t2.no,concat(tt.name || '-', to_char(sysdate,'yyyy-mm-dd HH24:mm:ss'))) no
from test tt,
(select t1.job_id,t1.dep_id,t1.item,t1.name,
concat(t1.name || '-',to_char(sysdate, 'yyyy-mm-dd HH24:mm:ss')) no
from test t1,
(select job_id sj, dep_id sd
from test t
group by job_id, dep_id
having count(*) > 1) s
where t1.job_id = s.sj
and t1.dep_id = s.sd
and t1.item = '002') t2
where tt.job_id = t2.job_id(+)
and tt.dep_id = t2.dep_id(+)
分享到:
相关推荐
mysql数据库分组统计数据库 练习脚本 DDL
在本示例中,我们关注的是如何利用SQL查询按时间进行分组统计数据。以下将详细介绍几种常见的分组方法及其应用。 1. **按年份分组**: 使用`to_char()`函数将日期字段转换为年份格式,并结合`GROUP BY`子句进行分组...
Oracle 分组统计是数据库开发中常用的技术之一。它可以根据不同的条件对数据进行分组和聚合统计。分组统计的目的是将数据按照某种条件分组,然后对每个组进行聚合计算,最后输出结果。 分组统计可以分为多种类型,...
李兴华老师的ORACLE数据库课程中,对分组统计和子查询进行了深入详解。本课程涵盖了分组统计的重点和难点、子查询的概念和应用场景,以及在实际开发中需要注意的细节。 分组统计 在SQL中,分组统计是对数据进行...
达梦数据库数据量统计.sql
"数据库原理实验报告 - 实验六 分组统计查询和集合查询设计.doc" 是一份专注于数据库高级查询技术——分组统计查询与集合查询设计的实验报告。本实验旨在通过实践操作,加深学生对SQL语言中GROUP BY子句、聚合函数...
本实例中,我们将深入探讨如何通过VB与Access数据库结合,实现销售分组统计报表的生成。 首先,我们需要理解VB与数据库交互的基本概念。VB可以通过ADO(ActiveX Data Objects)组件来连接和操作数据库,包括创建...
在易语言中,我们可以使用“执行SQL”命令运行此查询,并将结果存储在一个记录集对象中。然后,通过遍历记录集,提取每个类别及其对应的计数,显示在表格或者报表中。 对于“填表格”这个标签,我们可以理解为在...
在 Delphi 开发环境中,DBGrid 是一个常用的组件,用于展示数据库中的数据。当你需要在 DBGrid 中实现分组统计,即对数据进行分类并显示每个类别的总计,可以使用两种主要方法:一种是通过 ClientDataSet 的 ...
以下是一个简单的示例,展示如何使用Django ORM实现按月分组统计: ```python from django.db.models import Count, TruncMonth from .models import YourModel # 假设我们有一个模型,其中包含一个名为'created_...
E-R图显示了实体间的多对一(1:1)、一对多(1:N)和多对多(M:N)关系,例如,一个教师可以教授多个课程,一个课程可以被多个学生选修,一个分组包含多个学生等。 2. **关系模型设计**: 基于E-R图,转换为关系...
在SQL Server 2000中,分组统计是一个核心的查询功能,它允许数据库管理员和开发者对数据进行聚合操作,以获取特定字段的汇总信息。分组统计通常涉及GROUP BY语句,配合COUNT(), SUM(), AVG(), MAX() 和 MIN()等聚合...
总的来说,"ACCESS数据库分类统计易语言源码"是一个实用的教学资源,它揭示了如何运用易语言和SQL进行数据库的分类统计。对于想要提升数据库编程技能,尤其是对ACCESS数据库操作感兴趣的开发者来说,这是一个值得...
GROUP BY语句用于根据一个或多个列对数据进行分组,常与聚合函数(如SUM, AVG, COUNT, MAX, MIN)结合使用,以便对每个组进行统计计算。 10. **“DROP TABLE”、“TRUNCATE TABLE”和“DELETE ALL”有何区别?** ...
OceanBase是由阿里巴巴集团开发的一个分布式关系型数据库,它支持水平扩展和高可用性。OceanBase支持传统的关系数据库功能,同时针对在线事务处理(OLTP)和在线分析处理(OLAP)场景提供了优化,特别适用于大数据量...
下面是一个示例代码,演示如何使用 MongoTemplate 实现统计和分组: ```java public DBObject group(DBObject key, DBObject cond, DBObject initial, String reduce) { return this.group(key, cond, initial, ...
2. **分组统计**:指通过SQL语句对查询结果按照一个或多个字段的值进行分组,并对每个分组进行计数或其他聚合操作的过程。 3. **Spring框架**:一个开源的应用程序框架,旨在简化企业级应用程序的开发过程。Spring...
总的来说,"C# winform 动态分组统计"项目结合了C#编程、WinForms用户界面设计、数据库查询和数据绑定技术,提供了一个灵活的工具,使用户能够根据需要对数据进行动态分组和统计分析。通过深入了解这些知识点,...
例如,你可以使用以下代码创建一个数据库连接: ```vbscript Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\your\db.mdb;...
以下是一些常见的数据库面试问题及答案概览: 1. **数据模型**: - **概念模型**:用于描述业务对象及其关系,如实体-关系(E-R)模型。 - **逻辑模型**:如关系模型,是数据库管理系统实际使用的数据结构,如SQL...