2015年8月27日

按行统计符合条件的列数

摘要: 数据库环境:SQL SERVER 2005 有数据如图1,要求:统计每行中有多少列的值在20以内,有多少列大于20。在原表的基础上新增2列显示,实现的结果如图2。 如果直接在原表的基础上对列进行统计,会比较麻烦,可以通过列转行生成数据集1,再对1进行分组统计得到结果集2,然后将原表和数... 阅读全文

posted @ 2015-08-27 22:13 ToBeHJH 阅读(1092) 评论(0) 推荐(1) 编辑

exists改写SQL,使其走正确的执行计划

摘要: 数据库环境:SQL SERVER 2005 今天看到一条SQL,写得不是很复杂,返回7000多条数据,却执行了15s。SQL文本及各表的数据量如下:SELECT acinv_07.id_item , SUM(acinv_07.dec_endqty) dec_endqtyFROM ... 阅读全文

posted @ 2015-08-27 20:07 ToBeHJH 阅读(1169) 评论(1) 推荐(0) 编辑

2015年8月26日

树形查询扩展

摘要: 数据库环境:SQL SERVER 2005 有一层次表的数据如下图1,要实现图2的效果,即将层次结构的路径按行显示,第一列显示的是叶子节点,后面则是分枝节点,最后是根节点。 要解决的问题: 1.递归实现树形查询 2.从根节点到叶子节点编成一组 3.动态行转列 好了,我们依次来解决这些问题... 阅读全文

posted @ 2015-08-26 21:13 ToBeHJH 阅读(361) 评论(0) 推荐(0) 编辑

2015年8月25日

根据“坐标”生成趋势图

摘要: 数据库环境:SQL SERVER 2008R2 有一“坐标”表t,表结构如下: id int, num int 字段id是序号,递增且连续,字段num是数值类型。id可以看成是坐标轴的横轴,num则跟纵轴有关系,连续的2行记录,如果后一行的num值比前一行的num值大,则是递增趋势,反之,是... 阅读全文

posted @ 2015-08-25 17:43 ToBeHJH 阅读(834) 评论(0) 推荐(0) 编辑

2015年8月24日

分析函数优化自关联2

摘要: 数据库环境:SQL SERVER 2005 今天抓了一条返回数据比较少,但是执行时间相对较长的SQL。返回421行,执行了50S,说明SQL的执行效率有提升的空间。 我们先来看一下SQL文本SELECT a.dept_id , c.dept_name , a.cle... 阅读全文

posted @ 2015-08-24 22:22 ToBeHJH 阅读(369) 评论(0) 推荐(0) 编辑

求多个列的最大值/最小值

摘要: 数据库环境:SQL SERVER 2008R2 如题,现有数据如图1,要求求出每行相同数据类型的最大值/最小值。即图2的效果。 Oracle里有专门的greatest()、least()函数求多个列的最大、最小值,但是,在Sql Server里,还没有对应实现的函数。我想到的方法是通过想列转... 阅读全文

posted @ 2015-08-24 20:50 ToBeHJH 阅读(562) 评论(0) 推荐(0) 编辑

2015年8月21日

FOR XML PATH 应用及其反向分解

摘要: 数据库环境:SQL SERVER 2005 我们实现将同一组的数据内容合并到一行的时候,可以通过FOR XML PATH来实现。有数据如图1,要实现图2的效果 1.图1到图2的FOR XML PATH实现 网上有很多介绍FOR XML的方法,这里不再细说,感兴趣的朋友可以去查询一下它的用法。--... 阅读全文

posted @ 2015-08-21 17:10 ToBeHJH 阅读(1119) 评论(0) 推荐(1) 编辑

2015年8月18日

动态行转列小记

摘要: 数据库环境:SQL SERVER 2005 最近在整理数据时,要将查询到的数据张贴到Excel中。在Excel中,要展示的行数是固定的,列数不固定,一个一个数据的复制张贴太烦人。想了一个偷懒的方法,直接将查询的数据进行行转列,达到和Excel中的效果一致,再整列复制到Excel中。1.创建测试表,... 阅读全文

posted @ 2015-08-18 20:10 ToBeHJH 阅读(528) 评论(0) 推荐(1) 编辑

2015年8月13日

全天各个时间段产品销量情况统计

摘要: 数据库环境:SQL SERVER 2005现有一个产品销售实时表,表数据如下:字段name是产品名称,字段type是销售类型,1表示售出,2表示退货,字段num是数量,字段ctime是操作时间。要求: 在一行中统计24小时内所有货物的销售(售出,退货)数据,把日期考虑在内。分析: 这实际上是行转... 阅读全文

posted @ 2015-08-13 18:07 ToBeHJH 阅读(733) 评论(0) 推荐(0) 编辑

2015年8月12日

自关联去掉组内重复数据

摘要: 数据库环境:SQL SERVER 2005 现有一个表的数据如下,id是主键,p1,p2是字符串类型,如果当前行的p1,p2字段的值分别等于其它行的字段p2,p1的值,则视这2行记录为一组。比如,id=1和id=5就属于同一组数据。同一组数据只显示id最小的那行记录,没有组的数据全部显示。实现思路... 阅读全文

posted @ 2015-08-12 18:34 ToBeHJH 阅读(697) 评论(0) 推荐(0) 编辑

导航