前几天在统计数据的时候由于一贯不使用SQL Server,所以遇到了点问题,这里记录一下,以防再入坑。
1、使用SQL Server Manager进行查询时不要直接select * from a ,需要加上限制显示条数的关键字,如下:
<span style="font-size:14px;">select top 12 * from marketing_statistical_data;</span>
2、复制表结构与数据,不同于Oracle,不能使用 create table a as select * from b 这种模式:
复制表结构:
<span style="font-size:14px;">select * into marketing_statistical_data_res from marketing_statistical_data where 1=2;</span>
复制表结构以及数据:
<span style="font-size:14px;">select * into marketing_statistical_data_res from marketing_statistical_data;</span>
3、导入Excel表数据后的表作为源表与对比表进行相关数据分析后得出相关限制条件满足的数据的条数后再插入统计表中。需要注意的是,导入数据时需要对Excel相关数据的格式做好调整,否则会出现各种奇葩问题。至于使用其他格式,对于元数据为Excel时会更头痛此处不赘述。
<span style="font-size:14px;">insert into marketing_statistical_data_res
select CONVERT(varchar(12) , a.callingtime, 102 ),a.agentid,a.name,a.area,a.organize,
a.callingnum,COUNT(*) from marketing_statistical_data a left join
(select * from cc_agentcalldetail_bak t where t.callendtime>'2015-12-31') b
on a.agentid=b.agentid and a.callingnum=b.callednumber and
CONVERT(varchar(12) , a.callingtime, 102 )=CONVERT(varchar(12) , b.callendtime, 102 )
group by CONVERT(varchar(12) , a.callingtime, 102 ),
a.agentid,a.name,a.area,a.organize,a.callingnum;</span>