今天做查询统计的时候遇到了一个问题,就是要查出类似数据报表的数据。数据库里面查数据不是我需要的,需要自己组装数据,觉得麻烦。
例如:
SELECT
count(*)shuliang,
j.zhuangtaibh,
a.zhuanlilx
FROM
aj_ajxxb a left JOIN aj_ztls j ON a.wofangjh = j.wofangjh
AND j.zhuangtaibh <> ''
AND a.zhuanlilx IN(1, 2, 3)
GROUP BY
j.zhuangtaibh,
a.zhuanlilx
而我想要的专利类型1,2,3都在一行,这时就需要将列转行?
我的方法是:
SELECT
temp_xx.zhuangtaibh 状态编号,
CASE WHEN temp_xx.zhuanlilx = '1' THEN shuliang ELSE '' END AS '发明',
CASE WHEN temp_xx.zhuanlilx = '2' THEN shuliang ELSE '' END AS '新型',
CASE WHEN temp_xx.zhuanlilx = '3' THEN shuliang ELSE '' END AS '外观'
FROM
(
SELECT
count(*)shuliang,
j.zhuangtaibh,
a.zhuanlilx
FROM
aj_ajxxb a
JOIN aj_ztls j ON a.wofangjh = j.wofangjh
AND j.zhuangtaibh <> ''
AND a.zhuanlilx IN(1, 2, 3)
GROUP BY
j.zhuangtaibh,
a.zhuanlilx
)AS temp_xx
成为这样的数据,还是不符合要求
想到group_concat()函数分组能够和合并行数据,正好满足我的要求:
SELECT
t1.zhuangtaibh,
group_concat(faming SEPARATOR ' ')AS 发明,
group_concat(xinxing SEPARATOR ' ')AS 新型,
group_concat(waiguan SEPARATOR ' ')AS 外观
FROM(
SELECT
temp_xx.zhuangtaibh,
CASE WHEN temp_xx.zhuanlilx = '1' THEN shuliang ELSE ''END AS 'faming',
CASE WHEN temp_xx.zhuanlilx = '2' THEN shuliang ELSE ''END AS 'xinxing',
CASE WHEN temp_xx.zhuanlilx = '3' THEN shuliang ELSE ''END AS 'waiguan'
FROM(
SELECT
count(*)shuliang,
j.zhuangtaibh,
a.zhuanlilx
FROM
aj_ajxxb a
JOIN aj_ztls j ON a.wofangjh = j.wofangjh
AND j.zhuangtaibh <> ''
AND a.zhuanlilx IN(1, 2, 3)
GROUP BY
j.zhuangtaibh,
a.zhuanlilx
)AS temp_xx
)AS t1
GROUP BY
t1.zhuangtaibh
这样基本我的要求,可是怎么优化Sql???请大神帮忙想想。
分享到:
相关推荐
6. **报表生成**:可以生成关于数据库结构和性能的报告,帮助优化数据库设计。 标签“plsql 801 注册码生成器”再次强调了这个话题的重点,即针对PLSQL Developer 8.0.1版本的非法注册工具。 在提供的压缩包子文件...
8. **配置报告服务**:用于生成报表,根据需求进行配置。 9. **配置共享特性**:例如安装Management Tools,便于管理和监控数据库。 10. **安装规则检查**:安装程序会检查系统环境,确保满足所有依赖项。 11. **...
5. **创建报表**:自动生成数据汇总,支持数据分析和决策制定。 6. **设计宏**:录制和执行一系列操作,实现自动化任务,简化工作流程。 7. **编写VBA代码**:利用Visual Basic for Applications,可以编写更复杂的...
6. **报表和图表**:生成各种报表和图表,以直观的方式展示数据或性能指标。 使用绿色中文版PLSQL Developer,你可以无需安装就能快速开始数据库开发工作,这在共享工作、多环境切换或者教学场景中特别实用。只需...
4. **数据操作**:直接在工具中执行SQL查询,导出或导入数据,方便数据处理。 5. **项目管理**:组织和管理多个数据库项目,方便团队协作。 6. **报表生成**:自定义报告,便于分析和共享数据库信息。 尽管PLSQL ...
7. **报表和导出**:可以生成数据库对象的DDL脚本,便于备份或在不同环境中复制对象,同时支持将查询结果导出为多种格式。 8. **版本控制集成**:与常见的版本控制系统(如Git、SVN)集成,方便进行代码版本管理和...
在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: -------------------------------------------------------------------...
5. **报表生成**:提供各类统计报表,如进出货汇总表、库存报表、利润报表,帮助管理层掌握公司运营状况。 对于这个PHP源码,开发者可能需要关注以下技术点: - **数据库设计**:进销存系统通常需要与MySQL、...
- **报表输出**:能够生成各种类型的报表,如销售报告、库存报告等,为管理层提供决策支持。 #### 3.4 求助查询 - **在线帮助**:提供详细的在线帮助文档,帮助用户解决常见的问题。 - **技术支持**:通过电话、...
4. 有助于数据分析和报表生成,支持更复杂的数据统计需求。 在实际应用中,GROUP BY语句是数据库查询不可或缺的一部分,特别是在处理大量数据和需要进行多维度分析的场景下。理解并熟练掌握GROUP BY的使用,能够...