gpt4 book ai didi

mysql - “?” SSRS (MySQL ODBC) 中不过滤数据的参数

转载 作者:行者123 更新时间:2023-11-30 21:34:59 26 4
gpt4 key购买 nike

我在 SSRS 中有一份报告,当出现“?”时不显示任何结果。指定参数。如果我替换“?”带有字符串的参数,它返回所需的结果。我正在使用与 MySQL 服务器的 ODBC 连接。我在同一个项目中有另一个报告,其中包含一个有效的“?”参数。

非工作 SQL:

SELECT 
*
FROM
(
SELECT

firstname
,lastname
,CASE
WHEN LENGTH(mdl_user.idnumber) = '1' THEN CONCAT('00000', mdl_user.idnumber)
WHEN LENGTH(mdl_user.idnumber) = '2' THEN CONCAT('0000', mdl_user.idnumber)
WHEN LENGTH(mdl_user.idnumber) = '3' THEN CONCAT('000', mdl_user.idnumber)
WHEN LENGTH(mdl_user.idnumber) = '4' THEN CONCAT('00', mdl_user.idnumber)
WHEN LENGTH(mdl_user.idnumber) = '5' THEN CONCAT('0', mdl_user.idnumber)
ELSE mdl_user.idnumber
END AS KUserID
,from_unixtime(GH.timemodified,'%Y-%m-%d %H:%i:%s') AS DateTaken
,YEAR(from_unixtime(GH.timemodified,'%Y-%m-%d %H:%i:%s')) AS YearDateTaken
,itemname
,ROW_NUMBER() OVER(PARTITION BY itemname ORDER BY DateTaken asc) AS `rn`
,finalgrade
,CASE
WHEN finalgrade >= 70 THEN 'Pass'
WHEN finalgrade < 70 THEN 'Fail'
END AS IsPassing
,gradepass

FROM moodle_prod.mdl_grade_grades_history GH
INNER JOIN mdl_user ON GH.userid = mdl_user.id
INNER JOIN mdl_grade_items GI ON GH.itemid = GI.id

WHERE
rawgrade is not null

) as subq
WHERE
subq.KUserID = ?
AND
subq.YearDateTaken = ?

ORDER BY itemname

这是有效的 WHERE 子句

WHERE 
subq.KUserID = '032649'
AND
subq.YearDateTaken= '2018'

Parameter Input

Parameter Settings


有什么想法吗?

最佳答案

更新:我找到了一个次优的解决方法,它可以提供我正在寻找的结果,但会以性能为代价。

我从查询本身中删除了参数,而是使用 SSRS 中的内置过滤器。这相当慢,因为查询返回所有结果,然后报表过滤它们。

我想我会把这个作为一个答案,因为它可能对遇到同样问题的其他人有帮助,不受长时间查询运行时间的困扰,只想快速修复。

我仍在寻找实际问题的解决方案,而不是解决方法。

关于mysql - “?” SSRS (MySQL ODBC) 中不过滤数据的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54354230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com