使用【A】表与【B】表的【A.体积】合计与【B.产品编码】计数的最大值作为条件得到【结果】表。

z315559822 2009-06-23 11:17:42
使用【A】表与【B】表的【A.体积】合计与【B.产品编码】计数的最大值作为条件得到【结果】表。

1.【结果】表里的【定箱编号】不得是在【A】表里出现过的.

2.KM-461是【B】表里count(产品编码)的最大值,所以被update到【结果】表里sum(体积)最大值数据对应行。

3.KM-460则是仅次于KM-461的符合条件的数据,所以被Update到原来KM-458的数据记录里了。

提示:count(b.产品编码)与sum(a.体积)会出现多个值

A:
定箱编号 产品编码  数量 体积 合计体积
KM-458 AT346US346-2-1  1 0.25
KM-458 P51137-B  2 0.7 0.95
KM-459 K-T346US-1S346 3 1.8  
KM-459 K-T346US-2S346 1 0.26  
KM-459 P51137-B  1 0.35 2.41
------------------------------------------
B:
定箱编号 产品编码 数量 产品品种 合计体积
KM-458 AT346US346-2-1 2   1.10
KM-458 P51137-B 4   4.02
KM-458 P51138-H  3 3 2.85
KM-459 K-T346US-1S346 5   2.12
KM-459 K-T346US-2S346 5   1.83
KM-459 P51137-B  3   2.85
KM-459 P51138-H  6 4 5.70
KM-460 AT346US346-2-1 2   1.10
KM-460 P51137-B 4   4.02
KM-460 P51138-H  3 3 2.85
KM-461 K-T346US-1S346 5   2.12
KM-461 K-T346US-2S346 5   1.83
KM-461 P51137-B  3   2.85
KM-461 P51138-H 6 4 5.70
KM-462 K-T346US-1S346 5   2.12
KM-462 K-T346US-2S346 5 2 1.83
---------------------------------------------------
结果:
定箱编号 产品编码  数量 体积
KM-460 AT346US346-2-1  1 0.25
KM-460 P51137-B  2 0.7
KM-461 K-T346US-1S346 3 1.8
KM-461 K-T346US-2S346 1 0.26
KM-461 P51137-B  1 0.35
------------------------------------------------
图片格式数据更直观:
http://picasaweb.google.com/lh/photo/t4PfA88sTCvGO7t_Yjy4bQ?feat=directlink
...全文
23 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
z315559822 2009-06-24
  • 打赏
  • 举报
回复
这个问题看来狠棘手,等待......
ChinaJiaBing 2009-06-23
  • 打赏
  • 举报
回复

select * from B
group by B.定箱编号
order by count(distinct B.产品编码) desc)
from A,B
where A.定箱编号 =(SELECT top 1 定箱编号 --【确定体积最大的定箱定箱编号】
FROM (SELECT 定箱编号,sum( 体积)AS 体积
FROM A
GROUP BY 定箱编号 ) AS T1
WHERE 体积=
(SELECT MAX(体积)
FROM (SELECT 定箱编号,sum(体积)AS 体积
FROM A
GROUP BY 定箱编号 )AS T))
z315559822 2009-06-23
  • 打赏
  • 举报
回复
上楼的图片打不开,重新给连接:
http://lh5.ggpht.com/_cgygHfIdczg/SkBJHTtP2GI/AAAAAAAABtM/YRBlNod34zc/s640/20090623.JPG
我自己写了一个是不能循环的。

update  A
set A.定箱编号= (select top 1 B.定箱编号 --【确定产品品种最多的定箱编号】
from B
group by B.定箱编号
order by count(distinct B.产品编码) desc)
from A,B
where A.定箱编号 =(SELECT top 1 定箱编号 --【确定体积最大的定箱定箱编号】
FROM (SELECT 定箱编号,sum( 体积)AS 体积
FROM A
GROUP BY 定箱编号 ) AS T1
WHERE 体积=
(SELECT MAX(体积)
FROM (SELECT 定箱编号,sum(体积)AS 体积
FROM A
GROUP BY 定箱编号 )AS T))

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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