日期:2014-05-17  浏览次数:20534 次

求 SQL 语句???
A
商品CD 单价 
9856 NULL
5561 NULL
4512 NULL


B表
店铺CD 商品CD 单价 
1 9856 10
1 5561 9
1 4512 48
2 9856 10
2 5561 8.5
2 4512 48
3 9856 10
3 5561 9.5
3 4512 48
4 9856 10
4 5561 9
4 4512 50

现 有 A , B 两个表 根据B表 取得 商品CD的 单价 不用区分店铺 随意取 单价 就行 求SQL语句???
结果比如 
9856 10
5561 8.5
4512 50

------解决方案--------------------
SQL code
update a set a.单价=b.单价
from a,b where a.商品CD=b.商品CD

------解决方案--------------------
SQL code
SELECT 商品CD,AVG(单价) AS 平均单价 FROM B GROUP BY 商品CD

------解决方案--------------------
B表中不同店铺的同一商品的单价存在不同,你要取哪一条?
取平均价就用2楼的语句
要取出来更新到A表就用1楼的

------解决方案--------------------
一对多的更新,它会匹配其中的一个值更新的 

直接更新的语句就能达到你想要的效果。
------解决方案--------------------
SQL code


--更新最高值
UPDATE A SET A.单价=MAX(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

--更新最小值
UPDATE A SET A.单价=MIN(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

--更新平均值
UPDATE A SET A.单价=AVG(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

------解决方案--------------------
SQL code

--一对多更新,自动匹配

update a set a.单价=b.单价
from a left join b on a.商品CD=b.商品CD

--更新最高值
UPDATE A SET A.单价=MAX(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

--更新最小值
UPDATE A SET A.单价=MIN(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

--更新平均值
UPDATE A SET A.单价=AVG(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

------解决方案--------------------
SQL code

--一对多更新,自动匹配

update a set a.单价=b.单价
from a left join b on a.商品CD=b.商品CD

--更新最高值
UPDATE A SET A.单价=MAX(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

--更新最小值
UPDATE A SET A.单价=MIN(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD

--更新平均值
UPDATE A SET A.单价=AVG(B.单价)
FROM A JOIN B ON A.商品CD=B.商品CD