首页 > 解决方案 > 如何解决我在 Cognos Report Studio 中创建的表达式的错误

问题描述

CASE ?choice?
WHEN 1 THEN([Sales (query)].[Time (ship date)].[Date (ship date)] in_range ?Date?)
WHEN 2 THEN [Sales (query)].[Order method].[Order method code] = ?OrderMethod?
 ELSE [Sales (query)].[Employee by region].[Employee key] = ?Employee?
END



QE-DEF-0459  CCLException
QE-DEF-0260 Parsing error before or near position: 162 of: Case ?choice?
WHEN 1 THEN([Sales (query)].[Time (ship date)].[Date (ship date)] in_range ?Date?)
WHEN 2 THEN [Sales (query)].[Order method].[Order method code] = ?OrderMethod?
QE-DEF-0261 QFWP - Parsing text: CASE ?choice?

标签: cognos

解决方案


好问题,

做了一些测试

示例 1 将起作用

CASE ?choice?
WHEN 1 THEN([Data Item abc] =1)
WHEN 2 THEN ([Data Item xyz] =2)
 ELSE ([Something Else] =3)
END

示例 2 会因为缺少括号而显示错误(参见第二个 when 语句)

CASE ?choice?
WHEN 1 THEN([Data Item abc] =1)
WHEN 2 THEN [Data Item xyz] =2
 ELSE ([Something Else] =3)
END

使用您的示例,

CASE ?choice?
WHEN 1 THEN ([Sales (query)].[Time (ship date)].[Date (ship date)] in_range ?Date?)
WHEN 2 THEN ([Sales (query)].[Order method].[Order method code] = ?OrderMethod?)
 ELSE ([Sales (query)].[Employee by region].[Employee key] = ?Employee?)
END

您可能想尝试这样的过滤器,只是为了排除故障:

(?choice? = 1 AND 
  [Sales (query)].[Time (ship date)].[Date (ship date)] in_range ?Date?) OR 
(?choice? = 2 AND 
  [Sales (query)].[Order method].[Order method code] = ?OrderMethod?) OR 
(?choice? <> 1 AND ?choice? <> 2 AND 
  [Sales (query)].[Employee by region].[Employee key] = ?Employee?)

推荐阅读