2:flash绘图,生成每个节点的点击率
-----------------------------------------------------------------------------------------
DECLARE @rateSql NVARCHAR(4000),@defStr NVARCHAR(4000),@i INT;
DECLARE @fz INT,@fm INT,@perRate NUMERIC(10,2);
SET @i = 0 ;
WHILE @i < @Count
BEGIN
SET @rateSql =
'SELECT @fz = SUM(fz),@fm = SUM(fm) FROM (' + CHAR(13) +
' SELECT siteID,saFlag,CASE WHEN saFlag = 0 THEN COUNT(*) ELSE 0 END fz,COUNT(*) fm' + CHAR(13) +
' FROM t_arrive WHERE SiteID = '''+@SiteID+'''' + CHAR(13) +
' AND insTime > DATEADD(hh,@i*@TimeSpan,@StartDate)' + CHAR(13) +
' AND insTime < DATEADD(hh,(@i+1)*@TimeSpan,@StartDate)' + CHAR(13) +
' GROUP BY siteID,saFlag ) A';
SELECT @defStr='@fz INT OUT,@fm INT OUT,@StartDate DATETIME,@TimeSpan INT,@i INT';
EXEC sp_executesql @rateSql,@defStr,
@fz=@fz OUTPUT,@fm=@fm OUTPUT,@StartDate=@StartDate,@TimeSpan=@TimeSpan,@i=@i;
IF(@fz IS NULL) SET @fz = 0;
IF(@fm IS NULL) SET @fm = 2147483000;
SET @perRate = CAST(CAST(@fz*100 AS FLOAT)/@fm AS NUMERIC(10,2));
IF (@perRate IS NULL) SET @perRate = 0;
IF (@fz = 0) SET @fz = 2147483000;
INSERT INTO #tb_fzfm VALUES(@i+1,@perRate,@fz);
SET @i = @i + 1;
END
-------------------------------------------------------------------------------------------
SELECT ID,perRate FROM #tb_fzfm -- 第一个结果集(第几个节点,每个坐标点的点击率)
-------------------------------------------------------------------------------------------