頭をカーソルに巻き付けるのに少し助けが必要です。
私は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を閉じる
カーの割り当てを解除