高难度问题,请高手帮解决一下

usernamezero 2008-12-22 10:35:10
现在数据库中跟据姓名查出两条记录(呈现在页面上) ,但是可以肯定这两条记录是一个人。如下:
字段 name sex brithdate arg idcard org
1 张三 男 123456 设计院
2 张三 1988-06-07 20 123456

现在要操作这两条记录进行比对 要删除第二条 (重点:要把第一条的信息从第二条中取到并补全第一条的空缺位置)
这样的话就会设计到一方面的问题 怎样判断第1条的哪些字段是空的。并把第2条的信息提取到第一条的空缺处



...全文
146 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
usernamezero 2009-01-05
  • 打赏
  • 举报
回复
谢谢楼上的各位
jdsnhan 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hebo2005 的回复:]
引用 5 楼 icss_zhen 的回复:
引用 3 楼 hebo2005 的回复:
引用 1 楼 mantisXF 的回复:
SQL code-- TRY IT ..
SELECT NAME,
MAX(SEX),
引用楼主 usernamezero 的帖子:
现在数据库中跟据姓名查出两条记录(呈现在页面上) ,但是可以肯定这两条记录是一个人。如下:
字段 name sex brithdate arg id…
[/Quote]

都为空的时候默认取第一条,哈哈。
zhoulp_2009 2008-12-23
  • 打赏
  • 举报
回复
update temp_tableName t set(SEX,BRITHDATE,ARG,IDCARD,ORG)=
(SELECT
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM temp_tableName TT
where t.name=tt.name GROUP BY NAME )
WHERE t.rowid = (SELECT MIN(rowid) row_id FROM temp_tableName ttt where t.name=ttt.name GROUP BY NAME );

DELETE FROM temp_tableName WHERE ROWID IN (SELECT MAX(ROWID) row_id FROM temp_tableName GROUP BY NAME);
zhoulp_2009 2008-12-23
  • 打赏
  • 举报
回复
update temp_tableName t set(SEX,BRITHDATE,ARG,IDCARD,ORG)=
(SELECT
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM temp_tableName TT
where t.name=tt.name GROUP BY NAME )
WHERE t.rowid = (SELECT MIN(rowid) row_id FROM temp_tableName ttt where t.name=ttt.name GROUP BY NAME );

DELETE FROM temp_tableName WHERE ROWID IN (SELECT MAX(ROWID) row_id FROM temp_tableName GROUP BY NAME);
zhoulp_2009 2008-12-23
  • 打赏
  • 举报
回复
update temp_tableName t set(SEX,BRITHDATE,ARG,IDCARD,ORG)=
(SELECT
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM temp_tableName TT
where t.name=tt.name GROUP BY NAME )
WHERE t.rowid = (SELECT MIN(rowid) row_id FROM temp_tableName ttt where t.name=ttt.name GROUP BY NAME )
libolibo888 2008-12-23
  • 打赏
  • 举报
回复
update table_name t set(SEX,BRITHDATE,ARG,IDCARD,ORG)=
(SELECT
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM TABLE_NAME TT
GROUP BY NAME where t.name=tt.name);
是正确的。
hebo2005 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 icss_zhen 的回复:]
引用 3 楼 hebo2005 的回复:
引用 1 楼 mantisXF 的回复:
SQL code-- TRY IT ..
SELECT NAME,
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM TABLE_NAME TT
GROUP BY NAME;

引用楼主 usernamezero 的帖子:
现在数据库中跟据姓名查出两条记录(呈现在页面上) ,但是可以肯定这两条记录是一个人。如下:
字段 name sex brithdate arg idcard org
1 张三 男 …
[/Quote]

像arg字段,从数据上看应该取第二条,而idcard,则要取第一条
这种规律看不出来的,就很难去取舍了
icss_zhen 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hebo2005 的回复:]
引用 1 楼 mantisXF 的回复:
SQL code-- TRY IT ..
SELECT NAME,
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM TABLE_NAME TT
GROUP BY NAME;

引用楼主 usernamezero 的帖子:
现在数据库中跟据姓名查出两条记录(呈现在页面上) ,但是可以肯定这两条记录是一个人。如下:
字段  name  sex  brithdate      arg    idcard    org
1 张三  男                          1234…

为空的好办,…
[/Quote]

为空的应该也没关系吧,lz试下下面的sql
update table_name t set(SEX,BRITHDATE,ARG,IDCARD,ORG)=
(SELECT
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM TABLE_NAME TT
GROUP BY NAME where t.name=tt.name);没有测试啊,不知道正确不,这样update后二条sql再随便delete掉一个都行。
icss_zhen 2008-12-22
  • 打赏
  • 举报
回复
1楼方法好,可以先将二条合并为一条,作为一条临时表,然后再更新第一条数据,再将第二条delete掉
hebo2005 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mantisXF 的回复:]
SQL code-- TRY IT ..
SELECT NAME,
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM TABLE_NAME TT
GROUP BY NAME;

引用楼主 usernamezero 的帖子:
现在数据库中跟据姓名查出两条记录(呈现在页面上) ,但是可以肯定这两条记录是一个人。如下:
字段 name sex brithdate arg idcard org
1 张三 男 1234…
[/Quote]
为空的好办,两个都不为空的怎么办,取哪个?要有个标准
icss_zhen 2008-12-22
  • 打赏
  • 举报
回复
一定要删第二条吗?随便删一条行不?
mantisXF 2008-12-22
  • 打赏
  • 举报
回复
-- TRY IT ..
SELECT NAME,
MAX(SEX),
MAX(BRITHDATE),
MAX(ARG),
MAX(IDCARD),
MAX(ORG)
FROM TABLE_NAME TT
GROUP BY NAME;
[Quote=引用楼主 usernamezero 的帖子:]
现在数据库中跟据姓名查出两条记录(呈现在页面上) ,但是可以肯定这两条记录是一个人。如下:
字段 name sex brithdate arg idcard org
1 张三 男 123456 设计院
2 张三 1988-06-07 20 123456

现在要操作这两条记录进行比对 要删除第二条 (重点:要把第一条的信息从第二条中取到并补全第一条的空缺位置)
这样的话就会设计到一方面的问题…
[/Quote]
内容概要:本文围绕“光伏-储能-数据中心”系统的容量优化配置展开研究,旨在通过构建数学模型并结合Matlab编程实现,对园区内光伏发电、储能设备与数据中心算力负荷之间的多能互补关系进行协同优化。研究综合考虑可再生能源出力的波动性、储能系统的充放电特性以及数据中心的动态用电需求与算力调度特性,建立以最小化综合成本、降低碳排放强度、提升能源自给率等为目标的多目标优化模型,并采用先进的智能优化算法(如粒子群、灰狼、鲸鱼等)进行求解,从而确定光伏装机容量与储能系统配置的最优方案。文中提供了完整的Matlab代码实现流程,涵盖数据预处理、模型构建、算法求解与结果可视化全过程,属于综合能源系统与信息基础设施深度融合的前沿交叉课题。; 适合人群:具备电力系统、能源工程、自动化或计算机等相关专业背景,熟悉Matlab编程与基本优化算法原理,从事新能源利用、绿色数据中心、综合能源系统规划与低碳调度等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握光伏-储能-数据中心耦合系统的建模思路与多能流协同机制;② 学习基于Matlab的多目标容量优化配置方法与智能算法应用技巧;③ 为工业园区、数字经济园区及绿色数据中心的能源系统规划、节能减排与可持续运行提供科学决策依据和技术解决方案。; 阅读建议:建议结合所提供的Matlab代码,深入理解目标函数设计、约束条件设定及算法实现细节,可通过调整负荷参数、改变气候数据、引入新的优化目标或约束条件等方式进行拓展性实验,以深化对系统特性的认知并提升实际科研与工程应用能力。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧