我想为查询结果的每一行分配一个索引,我遵循this method来实现这一点。
此索引号不用于显示,如果仅用于显示,使用SSRS中的RowNumber()就足够了。相反,我将使用该索引号进行过滤。还请注意,SSRS不能在过滤器表达式中使用RowNumber()。
例如,我希望索引小于10的结果显示在Tablix1中,索引>= 10将显示在Tablix2中,类似这样。
我的查询在MySQL中运行得很好,直到我用SSRS运行它时,它都会出现错误。看起来SSRS不支持@curRow := @curRow + 1 AS row_number中的:=运算符。如果我从操作符中删除冒号:,错误就会消失,但行号不会递增。
为什么SSRS不支持:=运算符?是否有其他解决方法?
发布于 2018-08-16 13:34:47
我从here找到了解决此问题的方法
免责声明:
解决方法是创建一个MySQL函数来生成行号:
DROP FUNCTION IF EXISTS rownum;
DELIMITER $$
CREATE FUNCTION rownum()
RETURNS int(11)
BEGIN
set @prvrownum=if(@ranklastrun=CURTIME(6),@prvrownum+1,1);
set @ranklastrun=CURTIME(6);
RETURN @prvrownum;
END $$
$$
DELIMITER ;https://stackoverflow.com/questions/51869041
复制相似问题