distinct user
から選択してIT_Cases_List
、に保存していarraystaff()
ます。次に、この配列からaを呼び出して、このStored Procedure
ユーザーが参加したケースの数をカウントし、(arraystaff(i))
arraystaff.length-1までループします。
しかし、問題は、カウントが集計されないことです。
Sub getStaff(ByVal month As String)
If Not con.State = ConnectionState.Closed Then
con.Open()
End If
Dim s As String = "select distinct Attended_by from IT_Cases_List where month(Resolution_date) ='" & month & "' "
s = s & "And Year(Resolution_date) ='" & ddyear.SelectedValue & "' and Attended_by is not null "
cmd = New SqlCommand(s, con)
da = New SqlDataAdapter
ds = New DataSet
da.SelectCommand = cmd
da.Fill(ds)
If ds.Tables(0).Rows.Count > 0 Then
staffcount = ds.Tables(0).Rows.Count
ReDim arrstaff(staffcount - 1)
For Me.i = 0 To staffcount - 1
arrstaff(i) = ds.Tables(0).Rows(i).Item("Attended_by")
Next
getCases()
End If
End Sub
Sub getCases()
If con.State = ConnectionState.Closed Then
con.Open()
End If
ReDim arrdata(arrstaff.Length - 1, 0)
For Me.i = 0 To arrstaff.Length - 1
cmd = New SqlCommand("get_cases", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@ename", SqlDbType.VarChar).Value = arrstaff(i)
cmd.Parameters.Add("@Yr", SqlDbType.VarChar).Value = ddyear.SelectedValue
cmd.Parameters.Add("month", SqlDbType.VarChar).Value = m
cmd.ExecuteNonQuery()
da = New SqlDataAdapter()
da.SelectCommand = cmd
ds = New DataSet
da.Fill(ds)
If Not IsDBNull(ds.Tables(0).Rows(i).Item("NoCase")) Then
arrdata(i, 0) = ds.Tables(0).Rows(i).Item("NoCase")
End If
Next
cmd = New SqlCommand("delete from cases_Temp", con)
cmd.ExecuteNonQuery()
con.Close()
End Sub
これが私のストアドプロシージャです
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[get_cases](
@Ename varchar(100),
@Yr varchar(50),
@month varchar(30))
AS
BEGIN
declare @NoCase as int
select @NoCase=COUNT(*)
from IT_Cases_List
where Attended_by= @Ename and month(Resolution_date) =@month and
Year(Resolution_date)=@Yr and Attended_by is not null
insert into cases_temp(Ename,NoCase)
values(@Ename,@NoCase)
select * from cases_Temp
end
何を間違えたのかわかりません。どんな助けでも大歓迎です。
アップデート
わかりました、私は一度だけ電話をしましたgetcases
、しかし私はまだ同じ問題を抱えています。
これは私がプログラムを実行したときに私が得るものです:
データベースからCount(*)を取得した場合、取得する必要のあるケースの総数は132ですが、プログラムから取得したケースの総数は157(7 + 7 + 20 + 20 + 49 + 49 + 5)です。
SQLからクエリを実行すると、これが取得されるはずです
カウント数が(7,20,49,5,10,27,13)ではなく(7,7,20,20,49,49,5)重複していることに気付きました
誰かが私が間違ったことを教えてもらえますか?