頭をカーソルに巻き付けるのに少し助けが必要です。
私はaspxレポートを作成しました、それは非常に簡単でした。プロジェクトごとに、研究、開発、社内で何時間かかったかを確認する必要がありました。最初のものは非常に単純で、3つのグループと等しい3つのタイプの時間でソリューションをハードコーディングしました。上司はそれが素晴らしいレポートだと思ったので、すべての顧客をカバーするようにしたかったのです。残念ながら、次の顧客には5つのグループがあり、各グループにはそれぞれ2〜7種類の時間がありました。
ここで、グループを指定(完了)し、各グループにどのタイプの時間を入れるか(完了)を指定できる動的なソリューションが必要です。最後に、これら2つを、費やした時間を記録するテーブルと組み合わせる必要があります。
プロジェクト、時間の種類、この時間グループ内で費やされた時間を一覧表示できる基本的なカーソルがあります。
私が持っているのは:
プロジェクト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
問題は、レポートを
ヘッダー____グループA|グループB|グループC|グループN
プロジェクトA- |-5-|-1-|-0-|-x
プロジェクトB-|-2-|-10-|にする必要があることです。 --3-|-y
プロジェクトC-|-10-|-2-|-7-|-z
DECLARE @iTimeTypeGroupID int DECLARE cur CURSOR LOCAL READ_ONLY にとって SELECT iRefTimeTypeGroupID FROM tbl_TimeTypeGrouping WHERE iRefCustomerID = @customerID OPEN cur 次のフェッチからcur INTO @iTimeTypeGroupID WHILE @@ FETCH_STATUS = 0 始める PT.iRefProjectIDを選択します 、PT.iRefTimeTypeID 、SUM(PT.decNumberOfHours)sumNumberOfHours FROM tbl_ProjectTransaction PT WHERE iRefTimeTypeID IN( SELECT iRefTimeTypeID FROM tbl_TimeTypeGrouping WHERE iRefTimeTypeGroupID = @iTimeTypeGroupID AND iRefCustomerID = @customerID) PT.iRefProjectIDによるグループ化 、PT.iRefTimeTypeID 次のフェッチからcur INTO @iTimeTypeGroupID 終わり curを閉じる カーの割り当てを解除