首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求教这个语句要如何写。

2013-04-20 
求教这个语句要怎么写。。。表结构代理商名称办事处修正后的代理商名称更改时间aa1aa2012-03-05aa1aaa2013-01

求教这个语句要怎么写。。。
表结构
代理商名称   办事处   修正后的代理商名称   更改时间
a              a1       aa               2012-03-05
a              a1       aaa              2013-01-01
a              a1       b                2013-03-04
a              a1       bb               2013-03-15
a              a1       bbb              2012-05-05
a              a1       ccc              2013-04-01

我想要的结果:
代理商名称      修正后的代理商名称   更改时间       所扣分数
a                     aa               2012-03-05       5
a                     aaa              2013-01-01       5
a                     b                2013-03-04       5
a                     bb               2013-03-15       5
a                     bbb              2012-05-05       5
a                     ccc              2013-04-01       5

所扣分数指的是当代理商有过一次修正的记录后,将会扣除1分,每个代理商封顶5分,或者将所扣分数都统一成最终所扣的分数,我想做成这样的效果不知道行不行,求大神解迷。。
[解决办法]
怎么判断是修正过的?
[解决办法]
你呀你,问题都说不清楚,还有一张表呢?
[解决办法]

select 代理商名称,修正后的代理商名称,更改时间,所扣分数=
(select case when count(distinct b.修正后的代理商名称)<5 then count(distinct b.修正后的代理商名称) else 5 end from tb b where a.代理商名称=b.代理商名称)
from tb a


求教这个语句要如何写。
[解决办法]
修改语句这样写
update tb1 set [修改代理商名称] = 'dd' ,[修改日期] = getdate(),
[所扣分数] = case when [所扣分数] <5 then  [所扣分数]  +1 else 5 end where  [代理商名称] = 'a'
[解决办法]
你这个应该还有一张原始表吧 不然也不知道修正过
[解决办法]
drop table csdn1
go
create table csdn1
(
代理商名称 varchar(50),
办事处 varchar(50),
修正后的代理商名称  varchar(50),
更改时间 datetime,
所扣分数 int
)
go
insert into csdn1 values('a','a1','aa','2012-03-05',5)
insert into csdn1 values('a','a1','aaa','2013-01-01',5)
insert into csdn1 values('a','a1','b',' 2013-03-04',5)
insert into csdn1 values('a','a1','bb','2013-03-15',5)
insert into csdn1 values('a','a1','bbb',' 2012-05-05',5)
insert into csdn1 values('a','a1','cc',' 2013-04-01',5)
go
select * from csdn1
go
drop table newtable
go
--把内容复制到新表newtable 中
select * into newtable from csdn1 
--修改后更改时间
update csdn1
set 更改时间 = getdate() where 修正后的代理商名称 = 'aa'
--修改所扣分数
update csdn1
set 
csdn1.所扣分数 =
case when  csdn1.所扣分数 >0 then csdn1.所扣分数-1 else 0
end
from newtable
where  csdn1.代理商名称 = newtable.代理商名称 
and csdn1.修正后的代理商名称 = newtable.修正后的代理商名称
and csdn1.更改时间 <> newtable.更改时间

热点排行