SQL Server 2000 查询子句问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:37:40
表_name_1里列BJ的值为M ,条件是:
如果与之对应的materialid有重复项,而且重复项materialid对应的XH列值是重复项对应XH里最大的。
这个更新表的SQL语句怎么写啊?急,帮帮忙,谢谢。

第一次回答:

没有人能帮你,因为你问题都问不清楚!

1,与之对应的materialid
materialid字段是在同一个表里吗?

2,materialid有重复项?
又好像不是同一张表,那么另一张表叫什么?怎么关联?

3,materialid对应的XH列
如何对应(对应关系是什么?)是同一张表还是两张表?

4,更新,是整张表更新,还是针对某以特定的行或几行?

第二次回答:

楼下,你说:
我是LZ,baidu封我ID!!
问题说明:
1:是同一张表;
2:对应是同一条记录的两列对应;
3:只要往BJ列里填值,只更新BJ列好了。
4:楼上继续。
其实你还是没有回答第三和第四个问题,第四个问题其实就是要你提供更改的范围,即根据什么来更改,如果是整表,那么你应当提供表的主键,鉴于你没有提供,我用KEY表示,你自己更换。如果你的主键是XH,那么你自己解决了,只能怪你问问题不讲清楚,我懒得折腾你这个问题了。而且这种情况会更简单点。

我照猜,估约着回答你的问题吧!
以下是更新一整张表的SQL,更新一组固定的数据的话简单的多!

update _name_1 set BJ = 'M'
where key in
(
select a.key from _name_1 a,
(
select max(XH) XH, materialid from _name_1 where materialid in
(
select materialid from _name_1 group by materialid having count(1) > 1
)
group by materialid
) b
where a.XH=b.XH and a.materialid=b.materialid