我需要一些帮助来解决 CURSOR 问题。
我做了一个aspx报告,很简单。对于每个项目,我需要查看研究、开发和内部花费了多少小时。第一个非常简单,我只是用 3 组和相等的 3 种时间对解决方案进行硬编码。Boss 认为这是一份出色的报告,因此他希望它涵盖所有客户。不幸的是,下一位顾客有 5 组,每组有 2-7 种不同类型的时间。
现在我需要一个动态解决方案,我可以在其中指定组(完成)并指定进入每个组的时间类型(完成),最后我需要将这两者与记录花费的小时数的表结合起来。
我有一个基本光标,可以在其中列出项目、时间类型以及在这组时间中花费了多少时间。
我所拥有的是:
项目 A -|- A 组 -|- 5
项目 B -|- A 组 -|- 2
项目 C -|- A 组 -|- 10
项目 A -|- B 组 -|- 1
项目 B -|- B 组 -|- 10
项目 C -|- B 组 -|- 2
项目 A -|- C 组 -|- 0
项目 B -|- C 组 -|- 3
项目 C -|- C 组 -|- 7
问题是,我需要报告为
Header____Group A|Group B|Group C|Group N
Project A -|- 5 -|- 1 -|- 0 -|- x
Project B -|- 2 -|- 10 -| - 3 -|- y
项目 C -|- 10 -|- 2 -|- 7 -|- z
声明 @iTimeTypeGroupID 整数
DECLARE cur CURSOR LOCAL READ_ONLY
为了
选择 iRefTimeTypeGroupID
FROM tbl_TimeTypeGrouping
其中 iRefCustomerID = @customerID
打开当前
从当前获取下一个
INTO @iTimeTypeGroupID
而@@FETCH_STATUS = 0
开始
选择 PT.iRefProjectID
, PT.iRefTimeTypeID
, SUM(PT.decNumberOfHours) sumNumberOfHours
FROM tbl_ProjectTransaction PT
iRefTimeTypeID 在哪里(
选择 iRefTimeTypeID
FROM tbl_TimeTypeGrouping
WHERE iRefTimeTypeGroupID = @iTimeTypeGroupID
和 iRefCustomerID = @customerID)
按 PT.iRefProjectID 分组
, PT.iRefTimeTypeID
从当前获取下一个
INTO @iTimeTypeGroupID
结尾
关闭当前
解除当前