`
datamachine
  • 浏览: 164013 次
社区版块
存档分类
最新评论

SQL计算—生成动态列结果集

    博客分类:
  • DB
阅读更多

       问题来源:http://bbs.csdn.net/topics/391012377 。

       1tb1)中部分源数据如下:

       Prjno      Subtask   Ddate      Num

       P9996     P9996-sub002 2015-01-01     123

       P9996     P9996-sub002 2015-01-02     134

       P9996     P9996-sub002 2015-01-03     345

       P9996     P9996-sub002 2015-01-04     55

       T0071     T-007-01 2015-01-01     3333

       T0071     T-007-01 2015-01-02     356

       T0071     T-007-01 2015-01-03     178

 

       现需要根据输入的日期参数查询当月该日期前所有日期的项目,如输入2015-01-03希望得到:

       Prjno     Subtask  2015-01-01     2015-01-02     2015-01-03

       P9996     P9996-sub002 123  134  345

       T0071     T-007-01 3333       356  178

 

 

       集算器实现代码如下:



 

       A1:查询月初到指定日期的的数据,其中d_date为输入的日期参数,如2015-01-03pdate@m(d_date)计算当月首日;

       A2:根据月初到当前日所有日期序列生成动态列结果空序表,如下:



 

       A3:代码前半句A1.group(Prjno,Subtask)首先按照Prjno,Subtask分组(集算器的分组会保存每组的明细),再使用~.groups(Ddate;sum(Num):Num)循环每个分组按日期分组汇总Num值,最后A2.record()将分组名称和汇总值写回A2的结果序表中,得到最终结果:



 

       集算器可被报表工具或java程序调用,调用的方法也和普通数据库相似,使用它提供的JDBC接口即可向java主程序返回ResultSet形式的计算结果,具体方法可参考相关文档。

  • 大小: 41.1 KB
  • 大小: 7.6 KB
  • 大小: 18.7 KB
6
3
分享到:
评论

相关推荐

    在查询中生成序号列

    Access并不直接支持ROW_NUMBER()函数,这是SQL Server中用来为结果集生成连续序号的函数。但在Access中,我们可以使用DCount函数配合计算字段来达到类似的效果。比如,创建一个带有序号的查询,可以定义一个新的...

    SQL复习之聚集函数

    COUNT() 函数用于计算表中特定列的非空值的数量。如果未指定列名,它将返回所有行的数量。例如: ```sql SELECT COUNT(*) FROM table_name; ``` 如果只对某一列的非空值计数,可以写为: ```sql SELECT COUNT...

    SQL查询动态字段

    还可以将PIVOT操作与上述的额外聚合函数结合起来,以得到更全面的结果集。 ```sql SELECT M.*, N.平均, N.总和 FROM ( SELECT * FROM ( SELECT * FROM tb ) AS A PIVOT ( MAX() FOR γ IN ([], [ѧ], []) ) AS...

    帆软报表查询性能sql分析插件

    4. **报表设计优化**:除了SQL层面的优化,插件还可能提供对报表设计的建议,比如减少不必要的复杂计算,优化数据集结构,合理使用缓存策略等,以提升报表生成速度。 5. **兼容性与版本管理**:考虑到提供的压缩包...

    SQL Server 数据库日常维护脚本 合集

    此脚本实现了每天创建一次完整备份的功能,并通过日期动态生成备份文件名,确保每个备份文件名的唯一性。 ##### 删除旧备份 为了释放磁盘空间,需要定期删除旧的备份文件。通常根据备份策略,保留一定周期内的备份...

    SQL2005动态表无限级分类存储过程

    这个过程可能会使用到自连接或者递归公共表表达式(CTE)来生成扁平化的结果集,使得我们可以方便地遍历和展示整个分类树。 总的来说,这些存储过程的核心是通过动态生成SQL语句来处理无限级分类的增删改查操作,...

    VB 查询经过计算的列

    这通常涉及到在代码中动态生成SQL查询语句,或者使用VB的数据绑定控件来实现。以下是对这个主题的详细解释: 一、SQL查询中的计算列 在SQL查询中,你可以使用SELECT语句来创建计算列。这些列不是存储在数据库表中的...

    Oracle中使用SQL MODEL定义行间计算

    在实际应用中,MODEL子句并不会直接修改源数据表,而是生成一个新的结果集。如果需要更新表格,你需要将模型结果与INSERT、UPDATE或MERGE语句结合使用。这就避免了对原始数据的直接修改,提供了更多的控制和安全性。...

    单数据集分页SQL实现层式报表

    在FineReport中,SQL语句会根据当前页码进行相应的逻辑计算,从而动态生成正确的SQL语句。 5. 报表主体设计和行式引擎设置 完成分页SQL编写后,接下来是报表主体的设计。在FineReport中,设计报表时需要将数据集中...

    SQL 提升SQL执行效率诀窍

    1. FROM子句:此阶段将从各个数据源(如表或视图)中组合数据,生成初步的结果集。 2. WHERE子句:在此阶段,根据指定的条件过滤结果集中的记录。 3. GROUP BY子句:用于将数据按照一个或多个列进行分组。 4. 使用...

    SQL查询处理进程

    - **作用**:根据SELECT子句中的列和函数生成最终结果集。 - **(5-1)Evaluate Expressions** - **定义**:计算SELECT列表中的所有表达式。 - **作用**:计算并返回SELECT子句中指定的表达式的值。 - **结果**:...

    SQL行转列范例教程

    这段代码首先构建了包含所有必要字段的SQL语句,然后执行该语句来获取最终的结果集。 #### 五、总结 通过上述步骤,我们不仅理解了行转列的基本概念,还学习了如何通过编写动态SQL来实现这一功能。这种方法对于...

    易语言利用SQL语句实现超级列表框 带合计行

    4. **将结果添加到超级列表框**:最后,把查询结果插入到超级列表框的最后一行,实现合计行的动态生成。需要注意的是,易语言中的列表框控件可能需要使用特定的API或事件处理函数来添加自定义行。 5. **错误处理**...

    sql server函数大合集

    CHECKSUM 函数返回在表的行上或在表达式上计算的校验值,用于生成哈希索引。例如: ```sql ALTER TABLE products ADD cs_pname AS CHECKSUM(productname) CREATE INDEX pname_index ON products(cs_pname) SELECT ...

    sql SERVER 20008

    本例中通过动态SQL生成了多个列,每个列代表了一个特定的`buildNo`的`CheckInDay`值。 ### 表结构定义 此外,还提供了一段创建`ReportData`表的DDL语句,该表包含了员工住宿的相关信息。通过这张表可以了解住宿...

    Oracle高级sql学习与练习

    8. ROWNUM-TOP-N分析,使用ROWNUM伪列进行结果集的分页显示,以及处理具有行级计算的查询。 9. 相关子查询和非相关子查询是两种不同类型的子查询,分别根据是否依赖外部查询来决定其执行时机。 10. 增强GROUP BY...

    SQL Server2005杂谈(5):将聚合记录集逆时针和顺时针旋转90度

    如果我们想要计算每个`name`值的出现次数,传统的SQL查询会产生一个类似图2的结果,其中`name`作为列名,`count`作为行数据。 为实现逆时针旋转90度的效果,即把列名变成行,我们可以使用`PIVOT`操作。`PIVOT`函数...

    SQL精典问题与语句

    通过`PIVOT`操作(在某些数据库系统中提供,如Oracle),可以将数据集的某些值转换为列名,将原始数据的行转换为列。如果没有`PIVOT`,可以使用`CASE`和`GROUP BY`达到类似效果。 5. **交叉表(行转列)的动态方法*...

    sql server关键字详解大全(图文)

    下面把sqlserver中cross apply和outer apply关键字具体...APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。 APPLY 有两种形式: CROSS APPLY 和 OUTER APPLY。 CROSS APPLY 仅返回外部表中通

    SQL 函数集.rar

    SQL函数集是数据库查询语言SQL中的重要组成部分,用于处理和操作数据。在SQL SERVER中,函数的使用丰富了数据查询的灵活性和效率。本压缩包"SQL 函数集.rar"显然是一个关于SQL函数的资源集合,特别强调了交叉表、小...

Global site tag (gtag.js) - Google Analytics