在透视表中的选择语句
在透视表中的选择语句
我想通过使用SQL查询从一个没有准备好的透视列的表中获取一个具有不同状态和计数天数的透视表。
我尝试使用UNION ALL插入列,但查询太长,不实用且效率低下。
我的表
数据表
状态 |日期 ------------- 新 |25/2/2017 确认 |29/1/2017
状态表
状态 ------- 新 确认 完成
我想要的结果:
状态 | 0-7|8-14|15-21|<30 ---->天数
------------------------------
新 | 1 | 0 | 0 | 1
确认| 0 | 0 | 0 | 1
完成 | 0 | 0 | 0 | 0
已解决
解决方案
使用左连接状态表和数据表,然后使用CASE语句和透视表来解决它。谢谢所有试图帮助我的人 ^^
在上述代码中,出现了一个名为"Select statement in pivot"的问题。该问题的出现是因为需要将一个表中的数据按照一定的条件进行分组,并将结果以透视表的形式展示出来。
解决这个问题的方法是使用嵌套的SELECT语句和CASE语句来实现。在给定的代码中,使用了四个嵌套的SELECT语句来创建四个列,分别代表不同的时间段。每个SELECT语句中的CASE语句根据日期的天数判断该行数据是否符合相应的时间段条件,并返回1或0。最后,将原始表和嵌套的SELECT语句进行连接,得到最终的结果。
通过上述的解决方法,我们可以将原始表中的数据按照不同的时间段进行分组,并将结果以透视表的形式展示出来。这样可以更清晰地查看每个状态在不同时间段内的数量情况,方便分析和比较。
总结起来,"Select statement in pivot"问题的出现是因为需要将表中的数据按照一定的条件进行分组和透视,解决这个问题的方法是使用嵌套的SELECT语句和CASE语句来实现。通过这种方法,可以将原始表中的数据按照不同的时间段进行分组,并以透视表的形式展示出来。