I have a procedure that gets a sql query in string. Example:
SELECT SUM(Refuse) FROM FOOD_DES WHERE Refuse > 1
but I need sum only that rows for which condition is satisfied.
Condition looks like:
CONVERT(INT,RAND() * 100 ) <= @probability
but this doesnt work (it sums all elements):
SELECT SUM(Refuse) FROM FOOD_DES WHERE Refuse > 1 AND
CONVERT(INT,RAND() * 100 ) <= @probability
So tried next:
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
But it doesnt work neither.
Any idea?:)
How about like this: