统计列组中的列数

Count the number of columns in a column group

我需要报告每位工程师每月平均拜访客户的次数。 我的 SQL 查询在开始日期和结束日期之间创建了一个临时的 table 月份,并将其左连接到主要数据 table,以确保即使在没有访问的月份也能返回行制作。

因此从 SQL 返回的数据示例可能是:

我的报告有两个列组,一个用于年,一个用于月,我有一个工程师的行组。

对于此报告,返回的日期始终是当月的第一天,即使实际访问可能是任何日期。

每年年末都有一个单元格,其中包含 Count(Customer) 并计算该工程师当年的访问次数。我还想要一个单元格,显示当年每个月的平均访问次数。

对于一整年,我可以简单地除以 12。但是对于部分年份,我需要计算那一年的月份列数。

我尝试了 CountDistinct(Month),但这只计算了至少进行了一次访问的月份,因此月平均值不正确。

如何计算列组中的列数,包括没有数据的列?

谢谢。

我这样做的方法是在您的临时日期 table 中添加一列,其中选择了月数。

您可以通过计算临时 table 中的月份然后将值附加到它来完成此操作,或者,如果日期 table 包含的不仅仅是月份,则根据你传入的参数。

例如

SELECT *, DATEFIFF("m", @startDate, @endDate) as NoOfMonths
    INTO #myTempDateTable
    FROM myDateTable
    WHERE etc...

然后在 SSRS 中,您只需将总数除以这个数字即可。