sql 代码
- select
- test_report.test_project_id,
- project_info.project_name,
- test_report.test_report_id,
- test_report.report_title,
- enum_data.enum_data_id,
- enum_data.enum_data_label,
- phase.phase_id,
- phase.PHASE_NAME,
- SUM(CASEWHEN(view.bug_id IS NULL,0,1)) as bug_num
-
- from enum_data as enum_data
- inner join test_report as test_report
- on (enum_data.enum_data_type_id='BUG_CLASS' and test_report.TEST_PROJECT_ID= @projectId)
-
- left outer join TEST_REPORT_BUG_VIEW as view on
- (enum_data.enum_data_id = view.bug_class and test_report. test_report_id = view.test_report_id),
- project_info as project_info,
- Phase as phase
- where project_info.project_id=test_report.test_project_id
- and @condition
- and (test_report.check_out_phase=phase.phase_id
- or (test_report.check_out_phase is null and phase.project_Id=test_report.test_project_id and phase.phase_id=-1))
- group by test_report.test_project_id,
- project_info.project_name,
- test_report. test_report_id,
- test_report. report_title,
- enum_data.enum_data_id,
- enum_data.enum_data_label,
- phase.phase_id,
- phase.PHASE_NAME
这个是我到目前为止写的最为复杂的一个SQL语句了。首先,enum_data表和Test_Report表做全关联,这里的数据库是HSQL数据库。
第一个要点:全连接的on。我之前一直认为on是表示两个表之间的关联关系。但是,事实上on可以任何的连接条件。这里的on就是确定两个表的范围。
第二个要点:视图。这个
TEST_REPORT_BUG_VIEW也是我构建的视图。这个视图就是将TestReport表和BUG表作左外关联,以取出所有的TestReport表,不管该TestReport存在还是不存在BUG。
第三个要点:左外连接到视图。视图可以当作表来用,左外连接到这个视图,其中ON的条件是两个。那么如果有有满足的条件就会被选择出来。且左表是会被选择出来的。
第四个要点:这些表做好连接操作之后,和其它的几个表做联合查询。查询出来的表项在Select语句中来写,筛选条件由where语句来确定,虽然这里的where语句比较复杂,但还是比较清楚的。
第五个要点:GROUP BY。因为在Select中有sum()函数,因此,必须进行分组统计,分组的时候需要将选择的Select语句给选择出来。想知道为什么吗?笨,自己想。
哈哈,总之,这个统计被测试项目各测试报告各BUG类别的统计就计算出来了。这还幸亏是HSQLDB数据库,要不就挂掉了。
分享到:
相关推荐
极致CMS(以下简称_JIZHICMS)的一次审计-SQL注入+储存行XSS+逻辑漏洞.pdf
sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql...
sql 从入门到精通 SQL 的诞生于 IBM 公司在加利福尼亚 San Jose 的试验室中 在七十年代 SQL 由这里 开发出来 最初它们被称为结构化查询语言 Structured Query Language 并常常简称为 sequel 开始时它们是为 IBM 公司...
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一) http://download.csdn.net/source/3268267 Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二) ...
sqlserver自动生成sql语句工具sqlserver转oracle
sql学习资料 SQL自学通 SQL语句集锦 sql基础到高级 SQLServer实例 MySQL中文参考手册 数据库语言SQL必学 MySQL中文参考手册.chm SQL21自学通.pdf SQL查询答案.doc sql基础到高级.doc SQL语句集锦.txt 多个 SQLServer...
将现有源程序控制系统连接到SQL Server SQL Prompt Pro 轻松写入,编辑和探索SQL SQL Connect 使在Visual Studio中的数据库开发极致简单 SQL Test 在SQL Server Management Studio中进行数据库单元测试 ...
本教程会包含多个阶段来学习,从零基础到高级进阶,再到DBA的全套教程,主要内容包括Sql语言基础、数据库设计原则、高级查询技巧、存储过程编写、性能优化调整等。同时,可以以实例进行讲解,帮助读者更好地理解Sql...
本书是专门为oracle应用开发人员提供的sql和pl/sql编程指南。通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法...
本书是专门为Oracle应用开发人员提供的SQL和PL/SQL编程指南。通过学习本书,读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,...
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...
SQL的过程中对调用者传进的SQL进行转换后再执行,就基本完成了整个系统的SQL语法从SQL Server到Oracle的 兼容,呵呵,听起来有点不可思议。系统已经于3个月前上线,目前运行很稳定。 如果有人用得着或发现什么...
商城sql商城sql商城sql商城sql商城sql商城sql商城sql商城sql
SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程
SQL优化 SQL优化软件 SQL优化工具 很好用的工具,可以分析优化TSQL语句,oracle数据库语句优化工具
sql语法大全 基于sqlserver数据库
将mysql数据库转换为sql server的数据库,或者将sql server数据库转换为mysql的数据库,在nt环境下很多时候都会用到。使用mysql odbc后就比较好办,可以使用sql server的管理工具,也可以使用mysql的管理工具,更可以...
将现有源程序控制系统连接到SQL Server SQL Prompt Pro 轻松写入,编辑和探索SQL SQL Connect 使在Visual Studio中的数据库开发极致简单 SQL Test 在SQL Server Management Studio中进行数据库单元测试 ...
从SQL Server 2000升级至SQL Server 2008 R2实验手册