码迷,mamicode.com
首页 > 其他好文 > 详细

技巧语句

时间:2015-04-16 17:13:24      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

12:38 2014-03-09 SQL Server技术交流(213291913)
有没有遇到这样的问题

技术分享
表格2是结果,产品的汇总是类型不定的,有可能是‘ABC‘,‘BC‘,‘D‘多种可能都有,如何写SQL语句
我想到就是用游标,然后根据结果一条一条匹配。在表格1中增加一个汇总列,最后汇总成表2的样子。
有没有更好的方法呢?
下面是群友给出的答案

技术分享
 1 declare @temp table(产品 varchar(10),年 int,月 int,销量 int)
 2 insert into @temp(产品,年,月,销量)
 3 values(A,2013,1,23),
 4 (B,2013,1,1),
 5 (C,2013,1,23),
 6 (D,2013,1,3),
 7 (D,2013,2,8)
 8 declare @temp1 table(产品 varchar(10),年 int,月 int,销量 int)
 9 insert into @temp1(产品,年,月)
10 values(ABC,2013,1),
11 (AB,2013,1),
12 (ABD,2013,1),
13 (BCD,2013,1),
14 (CD,2013,2)
15 update @temp1 set 销量=(
16 select sum(销量) from @temp a 
17 where charindex(a.产品,b.产品)>0 and a.年=b.年 and a.月=b.月)
18 from @temp1 b
19 select * from @temp
20 select * from @temp1
View Code

16:12 2013-08-20 之前有遇到类似解决方案的例子

1 --求出累计成交金额大于1000的那个日期
2 create table test1(createtime varchar (8),je int)
3 insert into test1 values(20130801,200)
4 insert into test1 values(20130806,300)
5 insert into test1 values(20130810,500)
6 insert into test1 values(20130816,250)
7 insert into test1 values(20130820,250)
8 select createtime,je,(select sum(je) from test1 where createtime<=a.createtime) zj
9 from test1 a

16:23 2015/4/16 删除重复数据,连续被两位同事问到完全相同的重复记录如何删除只保留一条

技术分享
 1 create table del_samerecords
 2 (id int,remark varchar(10))
 3 go
 4 insert into del_samerecords
 5 select 1,a
 6 go 2
 7 go
 8 insert into del_samerecords
 9 select 2,b
10 go 3
11 go
12 --方式1
13 ;with a as
14 (
15 select ROW_NUMBER() over(partition by id order by id) as rankid,* from del_samerecords
16 )
17 delete from a where rankid>1
18 --方式2
19 while(1=1)
20 begin
21     delete top (1) del_samerecords
22     from del_samerecords,
23     (select id from del_samerecords group by id having count(*)>1) b
24     where del_samerecords.id=b.id
25     if @@ROWCOUNT=0
26     return
27 end
View Code

当然最容易理解的是将唯一记录insert到临时表,然后delete原表对应数据,再将临时表中的数据insert到原表

技巧语句

标签:

原文地址:http://www.cnblogs.com/Uest/p/3591494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!