更新临时表多字段重复的记录
假设联合多表查询得到如下临时表。
fbillno        fstatus      number         Sqty     snumber      qty
work001         1             SCN01        100       00A          10
work001         1             SCN01        100       00B          20
work001         1             SCN01        100       00C          30
work001         1             SCN01        100       00D          40
work001         1             SCN01        100       00E          50
work001         1             SCN01        100       00F          60
work001         1             SCN01        100       00G          70
work002         1             SCN02        200       10A          10
work002         1             SCN02        200       10B          20
work002         1             SCN02        200       10C          30
work002         1             SCN02        200       10D          40
work002         1             SCN02        200       10E          50
work002         1             SCN02        200       10F          60
work002         1             SCN02        200       10G          70
想更新之后到如下格式的表(把fbillno,fstatus,number,sqty重复的字段只保留第一条记录,但snumber,qty保留全部。
如下格式:
fbillno        fstatus      number         Sqty     snumber      qty
work001         1             SCN01        100        00A          10
null          null            null         null       00B          20
null          null            null         null       00C          30
null          null            null         null       00D          40
null          null            null         null       00E          50
null          null            null         null       00F          60
null          null            null         null       00G          70
work002         1             SCN02        200        10A          10
null          null            null         null       10B          20
null          null            null         null       10C          30
null          null            null         null       10D          40
null          null            null         null       10E          50
null          null            null         null       10F          60
null          null            null         null       10G          70
分数不多,请教各位,谢谢先!
------解决方案--------------------你套用一下这个
SQL code
DECLARE @TAB TABLE ([col1] varchar(1),[col2] int,[col3] int)
insert @TAB
select 'a',1,2 union all
select 'a',2,3 union all
select 'a',3,4 union all
select 'b',4,5 union all
select 'b',5,6 union all
select 'b',6,7
--------------开始查询--------------------------
select
   case px when 1 then col1 else '' end as col1,
   col2,col3
from
   (select px=row_number()over(partition by col1 order by getdate()),* from @TAB)t
------解决方案--------------------
最好表有一个自增的ID,
Update TableName set fbillno=null,fstatus=null,number=null,sqty=null
where ID not in (select min(ID) from TableName  group by fbillno,fstatus,number,sqty)