を返されていない -SQLのSUM負の値は、私はこのようになりますSQLクエリを持って
CREATE PROCEDURE [dbo].[getMemberFundUnits]
-- Add the parameters for the stored procedure here
@member int,
@fundcode varchar(15),
@closingdate datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT (CASE WHEN SUM(units) IS Null THEN 0 ELSE SUM(units) END) As fundunits
FROM pe_minv
WHERE pmi_member = @member AND pmi_fund = @fundcode AND pmi_invested <= @closingdate
END
私はこのようなストアドプロシージャを実行すると -
DECLARE @return_value as float /*int*/
EXEC @return_value = [dbo].[getFundUnits]
@member = 9738,
@fundcode = N'58193',
@closingdate = N'07/21/2011'
SELECT 'Return Value' = @return_value
を私は2つの結果を得ます。最初のものは-0.0060
であり、2番目の@return_valueは0
です。
これは、私のコードからストアドプロシージャを呼び出すときに、私が望む-0.0060ではなく0を返します。
私は私のコードからストアドプロシージャを呼び出すのですか。これは、次のとおりです。
Dim ds As New DataSet()
Dim cmd As New SqlCommand("getMemberFundUnits", conn)
cmd.CommandType = CommandType.StoredProcedure
Dim p_pm_member As New SqlParameter("@member", SqlDbType.Int)
p_pm_member.Value = pm_member
cmd.Parameters.Add(p_pm_member)
Dim p_fund_code As New SqlParameter("@fundcode", SqlDbType.VarChar)
p_fund_code.Value = fund_code
cmd.Parameters.Add(p_fund_code)
Dim p_period_closing_date As New SqlParameter("@closingdate", SqlDbType.DateTime)
p_period_closing_date.Value = period_closing_date
cmd.Parameters.Add(p_period_closing_date)
Dim da As New SqlDataAdapter(cmd)
da.Fill(ds)
これが起こってかもしれない、なぜ誰もが任意のアイデアを持っていますか?
ありがとうございます!
実際には、 '' SUM(nits)is Null THEN 0'の代わりに '' SUM(nits) ''を意味しますか? – Rahul