日度归档:2019年11月22日

mssql sqlserver 使用sql脚本检索业务数据中属于每月最后一天业务数据的方法分享


摘要:
今天接到领导的一个需求,查询出业务数据表中每月最后一天的业务数据,方便做对比分析。

接到这个需求,我的第一反应是,找出每个业务数据的日期所在的月份信息,然后根据月份信息生成最后一天的日期信息,
再把这个生成的日期信息作为条件放入业务数据表中对比生成数据。
例:
查询数据表“maomao365.com”中busiDate业务日期所在月末最后一天的业务数据

   select keyId,info,busiDate from  [maomao365.com]
     where busiDate = eomonth(busiDate)

相关阅读:
EOMONTH 函数用法说明

mssql sqlserver sql脚本查询条件中使用or关键字检索速度很慢的解决方法分享


摘要;
下文讲述sqlserver中sql脚本检索数据时,在条件中使用or关键字,导致检索速度很慢很慢的处理方法分享,如下所示:
实验环境:sql server 2008 R2

近期在调整一个ERP中的存储过程,发现一个数据表只有8万多条数据,但是where条件中使用了or关键字查询效率变的很低很低,通过多方测试,发现把or条件转换为union
可使检索速度大大的提升。

   select keyId,infoA,infoB from [maomao365.com]  where keyId in (8,6,9,10,11,12)
   ------变更为以下脚本---------
   select keyId,infoA,infoB from [maomao365.com]  where keyId =8
   union
   select keyId,infoA,infoB from [maomao365.com]  where keyId =6
   union
   select keyId,infoA,infoB from [maomao365.com]  where keyId =9
   union
   select keyId,infoA,infoB from [maomao365.com]  where keyId =10
   union
   select keyId,infoA,infoB from [maomao365.com]  where keyId =11
   union
   select keyId,infoA,infoB from [maomao365.com]  where keyId =12

mssql sqlserver 聚集函数简介说明及聚集函数的应用


摘要:
下文讲述sqlserver 中聚集函数简介说明及应用,如下所示:


聚集函数

聚集函数(aggregate function):
对一组列的数值进行计算,并输出一个值。
常见的聚合函数如下所示:

函数名称

函数功能
avg(列名)

求一组列的平均值
count(列名)

求一组列中元素个数
max(列名)

返回一组列中最大值
min(列名)

返回一组列中最小值
sum(列名)

返回一组列值 之和


AVG()函数

1.avg函数只能作用于单列
2.avg函数计算时,会忽略列值为NULL


count()函数

1.返回列个数
2.忽略列值为NULL
count(*) 将忽略整列值都为NULL的信息

MAX()、MIN()函数

max min函数都需指定列名,或指定一个进行横向计算的列名 max(a*b)

同时使用多个聚合函数

  select count(1) as [个数]
  ,avg(qty*price) as [平均之和]
  ,max(price) as [最高价]
  ,min(price) as [最低价]