请问这个SQL语句是什么意思
在改别的写的一个程序中,有一个这个的SQL语句,不知是什么意思,麻烦哪位知道的说一下。不太明白这个SQL语句到底是更新什么东西。
update tempdb..tmp_lenovo_iesa_t15
set prf_order=(select count(*) from
(select prf_total,od_satyp,el_no from tempdb..tmp_lenovo_iesa_t15
group by prf_total,od_satyp,el_no) b
where b.prf_total > = a.prf_total)
from tempdb..tmp_lenovo_iesa_t15 a
------解决方案--------------------这是更新tempdb库里的tmp_lenovo_iesa_t15这张表的prf_order字段的值
不过他写的不太对
update tempdb..tmp_lenovo_iesa_t15
set prf_order=(select count(*) from
(select prf_total,od_satyp,el_no from tempdb..tmp_lenovo_iesa_t15
group by prf_total,od_satyp,el_no) b
where b.prf_total > = a.prf_total)
from tempdb..tmp_lenovo_iesa_t15 a
直接这样就可以了
update tempdb..tmp_lenovo_iesa_t15 a
set prf_order=(select count(*) from
(select prf_total,od_satyp,el_no from tempdb..tmp_lenovo_iesa_t15
group by prf_total,od_satyp,el_no) b
where b.prf_total > = a.prf_total)
------解决方案--------------------更新prf_total,od_satyp,el_no不相同的记录数
------解决方案--------------------这分该给 2 楼 把你的SQL的BUG都说出来了 不错
------解决方案--------------------set prf_order=(select count(*) from
(select prf_total,od_satyp,el_no from tempdb..tmp_lenovo_iesa_t15
group by prf_total,od_satyp,el_no) b
where b.prf_total > = a.prf_total)
更新,使prf_order
=
select count(*) from
(select prf_total,od_satyp,el_no from tempdb..tmp_lenovo_iesa_t15
group by prf_total,od_satyp,el_no) b
where b.prf_total > = a.prf_total 查找出来的结果