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

请大家帮忙写一条跨表更新的语句。
问题如下 (更新中的数据类型转换)

需要把 spmc 这个表里面的ls字段的价格更新到 jxc_bm_sp 表里面的 dj_ls 字段上面去。关联的
字段是 jxc_bm_sp.bm=spmc.bm bm都是唯一的。

那么更新当中2个表的数据 类型不一样。小弟不才。往大家帮忙写下这个语句。十分感谢。

我同时也提供了下数据 就2个表 500 多K 很小 数据库版本 sql 2000
数据类型如下。
spmc.ls 是 varchar(8000)
jxc_bm_sp.dj_ls 是 decimal(18,7)

更新语句
update jxc_bm_sp set jxc_bm_sp.dj_ls = spmc.ls from spmc where jxc_bm_sp.bm = spmc.bm

迅雷数据下载地址 直接添加迅雷的新建任务就可以下。
http://xa.ctfs.ftn.qq.com/ftn_handler/470142fb12fab3484916c8111b79801b3d66c3dfebe06f6bfefbca5c261a63b67bd3d461112d31cbd82271775221a6e4a7630049907a9ec0e709b6e15c73817c/?fname=%E9%97%AE%E9%A2%98%26amp%253%E6%95%B0%E6%8D%AE_71368.rar&k=20326161dccfc19e58c660611f30044e060350525d0153524f0b5852011d025204544c000e01544c5a0205005a55065207060051393d36afa8fe8347f3cd88bc4c400013390d&fr=00&&txf_fid=7cc66fb41cfc13a6dc17c7b9665e0c5c932e9566&xffz=524315


------解决方案--------------------
SQL code
UPDATE  jxc_bm_sp
 SET     jxc_bm_sp.dj_ls = CONVERT(DECIMAL(18, 7),CONVERT(MONEY, spmc.ls))
 FROM    spmc
 WHERE   jxc_bm_sp.bm = spmc.bm