我需要一些帮助来解决 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 结尾 关闭当前 解除当前