求帮助一个sql语句
两个表 订单表YSDD:序号XH,产品编号ZBXH_CPBH,单价DJ;
产品盘盈表CPRK:标识序号ZBXH,产品编号ZBXH_CPBH,单价ZBXH_DJ
YSDD:
XH ZBXH_CPBH DJ
172 100M220 0.85
194 100M288 0.63
120 100M633 0.32
150 100M633 0.42
162 100M633 0.41
...................(若干上万行)
CPRK:
ZBXH ZBXH_CPBH ZBXH_DJ
15823 100M633
15823 100M220
15823 100M120
.....................(13行ZBXH都是一样15823)
现在的要求就是更新CPRK表里所有产品号的ZBXH_DJ,取值是从YSDD取得相应产品(比如100M633)的最新DJ(方法就是取得100M633在YSDD里XH最大的那一行的DJ) 也就是说一个产品在YSDD可能有很多行取XH最大那行单价赋值到CPRK表里,然后就是做个语句把CPRK表里的13行都填入相应的单价就行
小弟很少编程求指教谢谢!
------解决方案--------------------查询语句
select a.DJ,d.DJ,* from CPRK a
join
(
select b.ZBXH_CPBH,b.DJ from YSDD b
join
(select ZBXH_CPBH, max(XH) as XH YSDD group by ZBXH_CPBH) c
on b.ZBXH_CPBH=c.ZBXH_CPBH and b.XH=c.XH
) d
on a.ZBXH_CPBH=d.ZBXH_CPBH
修改语句
UPDATE A SET a.DJ=d.DJ
join
(
select b.ZBXH_CPBH,b.DJ from YSDD b
join
(select ZBXH_CPBH, max(XH) as XH YSDD group by ZBXH_CPBH) c
on b.ZBXH_CPBH=c.ZBXH_CPBH and b.XH=c.XH
) d
on a.ZBXH_CPBH=d.ZBXH_CPBH