1
2
我想我已经找到解决办法了。有三个基本步骤:
为了得到12个日期(每个月一个),我使用了一个稍微递归的LIKE WITH语句来创建一个临时表,其中1列包含12个日期:
从这里我可以交叉连接这个临时表和我真正关心的信息的表。然后我使用开始和结束之间的where日期来过滤不属于该月的任何条目。所以像这样:
在这一步中,我们必须小心地只选择结果中明确需要的列,或者那些将使用PIVOT语句聚合的列。 最后,我们必须透视结果:
因此,结果查询可能如下所示:
我已经消除了我为加入我需要的其他信息而经历的所有其他复杂性,所以这实际上不是我编写的查询,但它应该封装我在需要时获得结果所使用的基本查询结构。 |
2
0
我同意12个案例陈述。 这实际上是我在回去之前草拟的解决方案,我看到你在其中提到了你的问题。 |
3
0
为什么不先计算月份的列,然后使用它来透视呢? 日期部分(月,[日期]) 还是我误解了问题? |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
hud · 执行存储过程会导致错误 8 年前 |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |