文字列にSQLクエリを取得するプロシージャがあります。例:確率条件が満たされている行のみ集計
SELECT SUM(Refuse) FROM FOOD_DES WHERE Refuse > 1
ただし、条件を満たす行のみを合計する必要があります。
CONVERT(INT,RAND() * 100) <= @probability
が、このdoesntの仕事(それはすべての要素を合計): 条件は次のようになります
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
しかし、どちらもうまくいきません。 任意のアイデア:)
は、あなたがしようとしているものを知らせるために 'having'句 – asawyer
+1を検索します。 – Matthew