合并排序-两个表各自排序后再按权重合并后排序问题?求高手指点,谢谢.在线等。。

问题描述

两个表各自排序后再按权重合并后排序问题?求高手指点,谢谢.在线等。。

原始需求:这是个仓库自动入库策略, 共6台堆垛机(字段1),同时入库工作,要求根据入库物料在各堆垛机的分布数量,平均分布入库,同时考虑堆垛机入库任务数和繁忙程度。(对物料分布(字段2)查询的结果(如表a查询结果排序)和堆垛机任务数(字段3)查询的结果(表b查询结果排序)分别作比重排序(例如物料分布排序1-6,任务数量排序1-6,两者相加最后综合排序1-6)找出需要入库的堆垛机。)

实现:

表a和表b是2个不同的表,通过字段1关联,分别统计的结果是字段2和字段3(字段2和字段3是不同的字段,比如一个是物料数一个是任务数),将统计的结果分别排序,然后再按照排序的结果分别赋予顺序权重值1-6,然后根据字段1将2者合并求出最后的权重顺序。请高手帮忙啊,如何通过存储过程或sql实现???(注意:要求的结果不能直接是两者合并排序,而是各自排序后求得顺序权重值后再合并排序)

表a
字段1 字段2

a 23
b 16
c 32
d 0
e 26
f 39

表a查询结果排序:
字段1 字段2

d 0
b 16
a 23
e 26
c 32
f 39

表b
字段1 字段3
a 10
b 13
c 23
d 11
e 0
f 28

表b查询结果排序:
字段1 字段3
e 0
a 10
d 11
b 13
c 23
f 28

要求结果:
根据排序后的结果将字段1按顺序赋予权重值(权重值是1-6),从小到大:
a表字段1排序赋予权重后:
字段1 权重
d 1
b 2
a 3
e 4
c 5
f 6
B表字段1排序赋予权重后:
字段1 权重
e 1
a 2
d 3
b 4
c 5
f 6
然后将两个结果合并求和排序,按从小到大:
结果如下:
d 4
a 5
e 5
b 6
c 10
f 12

主要是为了求这个排序结果. 求指导,谢谢。。

解决方案

你得说明是什么数据库,像oracle有rownum,按照各表排序后,再union 全sum(rownum)就是你想要的结果

解决方案二:

当然可以用rownum,也可以用row_number()方式
 CREATE TABLE TEST_A(
   field1 varchar(20),
   nums int default 0
);
CREATE TABLE TEST_B(
   field1 varchar(20),
   nums int default 0
);
insert into TEST_A(field1,nums) values('a','29');
insert into TEST_A(field1,nums) values('b','5');
insert into TEST_A(field1,nums) values('d','13');
insert into TEST_A(field1,nums) values('d','2');

insert into TEST_B(field1,nums) values('c','2');
insert into TEST_B(field1,nums) values('e','51');
insert into TEST_B(field1,nums) values('f','3');
insert into TEST_B(field1,nums) values('d','26');

select field1,sum(rn) rn from
(
select a.*,rownum as rn from (select * from TEST_A order by nums) a
union
select b.*,rownum as rn from (select * from TEST_B order by nums) b
) group by field1 order by rn
时间: 2024-09-16 17:17:42

合并排序-两个表各自排序后再按权重合并后排序问题?求高手指点,谢谢.在线等。。的相关文章

sql-两个表各自排序后再按权重合并后排序问题?求指点,谢谢

问题描述 两个表各自排序后再按权重合并后排序问题?求指点,谢谢 原需求:这是个仓库自动入库策略, 共6台堆垛机,同时入库工作,要求根据入库物料在各堆垛机的分布数量,平均分布入库,同时考虑堆垛机入库任务数和繁忙程度.(对物料分布查询的结果和堆垛机任务查询的结果分别作比重排序(例如物料分布排序1-6,堆垛机任务数量排序1-6,两者相加最后综合排序1-6)找出需要入库的堆垛机.)实现过程:1.先查询需要入库的物料在各堆垛机所在巷道的分布,找出各个巷道物料数从小到大排序:排序的结果如下:(这个是从表A中

我想写一个查询在线IP功能的软件模块,但写好后出不来效果,跪求高手指点,谢谢。

问题描述 我这个主要是想实现查询一段给定的IP地址(例如:10.0.214.5-10.0.214.90)看看有哪些是在线的并以树的形式显示出来(这段代码还没写),类似于飞鸽的显示在线用户的功能一样.这里我写的这段程序,主要分为三个部分:界面,发送验证信息的线程.接受验证信息并回复的线程.我感觉自己可能逻辑上存在问题,跪求高手指点,我编程还比较猜.希望高手援救,谢谢.//这是运行时的界面,还很简陋,实现功能后再美化importjava.awt.event.*;importjava.net.*;im

vb.net 操作IE,画面迁移后,IE对象为空,求高手指点

问题描述 我是利用objIE=CreateObject("InternetExplorer.Application"),获得IE对象的,可是点击画面提交后,再从objIE.Document中获取不到了求高手 解决方案 解决方案二:自己顶哈....

select-mysql 嵌套查询,一个表的多个字段 作为另一个表的条件,若为空输出0,求高手

问题描述 mysql 嵌套查询,一个表的多个字段 作为另一个表的条件,若为空输出0,求高手 SELECT daan FROM 表A a,表B a WHERE daan=b.选项1 or daan =b.选项2 问题来了 若 从表A 查 表B的选项,daan为空,怎么输出0 解决方案 首先得搞明白select daan 就是这一列 为空,输出0属于计数,可以用函数 这两个并不能写一起 解决方案二: 可以使用case when阿 SELECT case when rtrim(daan) ='' th

net 2.0-用.net2.0设计的网站,更换服务器后,上传组件失效。求高手指教!

问题描述 用.net2.0设计的网站,更换服务器后,上传组件失效.求高手指教! 公司网站,2011年设计,用的是微软的.net2.0框架(aspx)+win2003IIS,以前运行一切正常,搬迁到云服务器后,出现上传组件错误,具体表现: 1.点击上传组件后,源代码不执行(也就是点了之后页面闪一下,然后就回复了原页面): 2.自己新建了一个ASP编写的程序,上传成功: 3.目录权限没问题: 4.在云服务器上安装了VS2010进行本地调试,localhost加端口进行访问,测试上传是成功的.奇怪的是

html5-【菜鸟问题】两组轮播JS代码有冲突,问题很多!求高手帮忙解决

问题描述 [菜鸟问题]两组轮播JS代码有冲突,问题很多!求高手帮忙解决 上图JS代码如下: [code=javascript] //首页顶部轮播 var i = 0; jummper(); function jummper() { $(".car ul li").eq(i).find("img").css("left", "-100%"); //滑动图在左边-100%准备 $(".car ul li").e

应用布署在Websphere下后连不上oracle数据库,跪求高手指点,谢谢!

问题描述 我的应在布署在weblogic下可以正常运行,但切换布署到Websphere下后连不上oracle数据库,跪求高手指点,日起如下:谢谢![10-11-1116:31:51:715CST]00000016ConnectionFacEJ2CA0009E:尝试实例化资源ibps使用的ManagedConnectionFactory类com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl时发生异常:java.lang.reflect.In

用cssfriendlyadapter控制menu后,动态菜单总是覆盖静态菜单~!!求高手指点

问题描述 用cssfriendlyadapter控制menu后,动态菜单总是覆盖静态菜单~!!求高手指点应说动态菜单在静态的下面,可是我这鼠标放在静态菜单后,动态菜单总是覆盖静态菜单,俩者不共存啊~!!css中用于cssfriendlyadapter的代码:.SimpleEntertainmentMenu1ul.AspNet-Menuulli:hover/**//*Tier2moveon*/{background:#C0C0C0;color:#FFFFFF;width:250px;text-al

怎样将表单提交的数据先保存成字符串?请各位高手帮忙,谢谢!!

问题描述 现在小弟遇到一个问题,在一个表单上有"姓名,性别,年龄,出生日期"这几个字段,对应的数据表为user,现在要想在user表中插入N条数据(不定数),我现在的想法是:当用户在表单上输入一条数据后怎么能保存成一条插入语句,下一条也同样保存成一条SQL插入语句,如果在user表中要增加5条,那么就自动生成5条sql新增语句,最后用一个过程统一将这5个SQL语句正式执行写入数据库中,或者用数组循环什么的能写出用户每次提交数据的sql语句吗?谢谢,在线等! 解决方案 解决方案二:jf解