回 帖 发 新 帖 刷新版面

主题:请各位大侠帮忙看看如何用SQL语言更新这个表

有两个表A,B

A表有两个字段,没有关键字

|      X         |         Y         |

|      1         |         0.2       |

|      1         |         0.3       |

|      1         |         0.5       |

|      2         |         0.9       |

|      3         |         8          |

|      3         |         0.6       |

|      4         |         4          |

|      4         |         12        |

|      4         |         0.2       |

|      4         |         1.5       |



B表也有两个字段,且M字段为关键字

|       M        |        N        |

|       1        |        0.2      |

|       2        |         5        |

|       3        |         6        |

|       4        |        7.5      |

|       5        |         5        |

|       6        |        4.3       |

|       7        |         2.1      |

|       8        |         5.5      |



请问各位大侠,用SQL语言能不能写一个这样的更新



当B表的M字段等于A表的X字段,那么B表的N值为A表相同的X字段的Y值的和。

这样说好像很难理解

也就是更新后,B表为

|       M        |        N        |

|       1        |        1         |    就是A表中1的Y值的和,0.2+0.3+0.5=1

|       2        |        0.9      |                                    0.9

|       3        |        8.6      |                               8+0.6=8.6

|       4        |        17.7    |                        4+12+0.2+1.5=17.7

|       5        |         5        |     在M值在A表X值中没有的就保持原来N值的值不变

|       6        |        4.3      |

|       7        |        2.1       |

|       8        |        5.5       |
[em18]

回复列表 (共2个回复)

沙发

update B set n=(select sum(y) from a where x=m)
where n in (select distinct x from a) 

板凳

谢谢了

我来回复

您尚未登录,请登录后再回复。点此登录或注册