文字列でSQLクエリを取得するプロシージャがあります。例:
SELECT SUM(Refuse) FROM FOOD_DES WHERE Refuse > 1
しかし、条件が満たされた行だけを合計する必要があります。条件は次のようになります。
CONVERT(INT,RAND() * 100 ) <= @probability
しかし、これは機能しません(すべての要素を合計します):
SELECT SUM(Refuse) FROM FOOD_DES WHERE Refuse > 1 AND
CONVERT(INT,RAND() * 100 ) <= @probability
次に試してみました:
SELECT SUM(Refuse) FROM FOOD_DES AS T CROSS APPLY fn_probability() AS F
CREATE FUNCTION fn_probability ( )
RETURNS @probabilityInfo TABLE ( Result INT )
AS
BEGIN
DECLARE @rand INT
SET @rand = ( SELECT TOP 1
RandValue
FROM RandView
)
IF @rand <= 80
INSERT INTO @probabilityInfo
( Result )
VALUES ( 1 )
RETURN
END
CREATE VIEW RandView AS SELECT CONVERT(INT, RAND() * 100) AS RandValue
しかし、どちらも機能しません。何か案が?:)