完整的SQLServer数据库数据汇总分析(与汇总)

完整的SQLServer数据库数据汇总分析(与汇总)
现有表A如下所示:
编码仓库数
01 6
01 B 7
02 8
02 B 9
现在您想通过代码查询这种格式:
01 6
01 B 7
小结:13次小计
02 8
02 B 9
总结:17次
问:你是怎么做到的
乍一看,似乎很容易,似乎是通过小组来实现的。但是仔细研究,你会觉得小组也无能为力,总的缺点和缺点,没有办法去。那么,到底要做什么呢不必担心,SQL Server为我们做了这件事。下一个,跟我来。
首先,让我们看一段:
在生成包含小计和合计报表,ROLLUP运算符是有用的。结果集由ROLLUP运算符生成的结果集类似于CUBE运算符生成的。
结果集的CUBE运算符生成的是一个多维数据集的多维数据集是数据的一种延伸,和事实数据的数据记录个人事件。扩展都是建立在用户试图分析列,这些列称为维度,多维数据集是一组结果包含每个维度交叉表的所有可能的组合。
CUBE运算符由SELECT语句子句中指定的组。这个语句选择列表应包含维度列和聚合函数的expression.group应指定维度列和立方体的关键词,结果集将包含维度列中各值的所有可能组合,和总价值在这些维度值组合相匹配的基准线。
CUBE和ROLLUP的区别在于:
多维数据集生成的结果集显示了所选列中所有值组合的集合。
结果集的汇总生成显示一个层次结构中的所选列中值的聚集。
看到上面的段落后,你发现了什么如果不是,那么…嘿,你的理解不是哟,从三邹顶花很多:)然后让我们看看它的一块。
选择代码、仓库、和(数量)作为数字
从一个
集团通过编码,仓库汇总
-关键是背后与汇总
-当然,你也可以用立方体,但结果会有点不同。
能在上面完成你仍然感到雾,困惑。没有关系如果你不理解它,自己做它。
首先:构建上面描述的表,输入几行数据;
然后打开SQLServer查询分析器,包括在表上构建的服务器,并选择包含表的数据库。
然后:上面的SQL语句复制,Paste到查询分析器,然后按F5,什么看看下面是什么它和我一样吗
编码仓库数
01 6
01 B 7
01空13
02 8
02 B 9
02空17
空值30
-如果你使用多维数据集,结果集后面还有两个(如果你在示例中输入几行数据):
空14
NULL B 16
嘿!奇怪,结果中怎么会有这么多空值呢哈,别担心。这些是我们想要的数据的集合。不难看出:
01 null 13是编码为01的所有仓库的摘要;02 null 17是编码为02的所有仓库的总数的摘要;
空null 30是所有数据行数的摘要。
怎么用答案出来了吗很简单吗当然,还有一点美,那就是有很多空。你怎样去掉这些毫无意义的空Then we will optimize it.
1。用分组替换空值
选择案例时(分组(编码)= 1)then'all
别的isnull(编码,'unknown)
端编码,
当(分组(仓库)= 1)then'all
别的isnull(仓库,'unknown)
以仓库结尾,
总和(数量)的数目
从一个
集团通过编码,仓库汇总
正确使用案例功能
这里我没有写的结果是将所有空值更改为所有字符串。
2。使用程序进行进一步优化
为了显示需要正常,我们必须在上面的SQL语句生成的结果做一些优化,自然语言描述如下:
同时(不是最后一条记录到{)
if代码值不是全部,而仓库值是全部。
{
编码值小计:用替换值替换仓库;
把这条线的颜色标为灰色;
}
其他编码值也是所有仓库值。
{
用总计替换编码值,用替换仓库值。
把这条线的颜色标为淡绿色;
}
指针移到下一个指针。
}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部