我需要一些帮助,因为我被困住了。这是使用 SQL 和 Coldfusion。基本上,我有一张表格,其中列出了某些票的完成情况以及它们被标记为完成的日期。这张表有区和区例如,在GROUP BY中使用。所以我想计算一年中每周完成的每张票,例如用户选择运行报告。我将列出我目前拥有的一些 SQL。
SELECT
SUM(CASE WHEN DATEPART(ww, completionDate) = 1 THEN 1 ELSE 0 END) AS [Jan1-7],
SUM(CASE WHEN DATEPART(ww, completionDate) = 2 THEN 1 ELSE 0 END) AS [Jan8-14],
SUM(CASE WHEN DATEPART(ww, completionDate) = 3 THEN 1 ELSE 0 END) AS [Jan15-21],
SUM(CASE WHEN DATEPART(ww, completionDate) = 4 THEN 1 ELSE 0 END) AS [Jan22-31]
SUM(CASE WHEN DATEPART(ww, completionDate) = 5 THEN 1 ELSE 0 END) AS [Feb1-7],
SUM(CASE WHEN DATEPART(ww, completionDate) = 6 THEN 1 ELSE 0 END) AS [Feb8-14],
SUM(CASE WHEN DATEPART(ww, completionDate) = 7 THEN 1 ELSE 0 END) AS [Feb15-21],
SUM(CASE WHEN DATEPART(ww, completionDate) = 8 THEN 1 ELSE 0 END) AS [Feb22-28],
如您所见,我基本上是在尝试获取完成日期是一年中的哪一周,并将其汇总在自己的列中。除非有人有更好的建议,否则它应该采用这种格式。例如,问题是 2013 年 2 月 18 日,SQL 告诉我这将是 2013 年的第 8 周,而我的代码将在 FEB15-21 中求和,根据我的代码,这是第 7 周。我需要的报告是在顶部标题中显示月份,然后在该月的下一个标题中显示每周,然后基本上计算该周完成的每张票。所以周/月需要是列。
我已经阅读了一些 CF 功能和所有内容,但只是不确定如何利用它们来获得我需要的东西。有没有办法动态求和这些日期,确保它们根据星期在正确的列中求和,或者使用 Coldfusion 来处理这部分?但我对 ColdFusion 部分也不太确定,所以如果可能的话,任何关于使用 SQL 或 CF 的建议以及可能在代码部分帮助我的任何建议都将非常感激。
谢谢!!