Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL命令+;CASE Crystal报告_Sql_Sql Server_Crystal Reports_Sqlcommand - Fatal编程技术网

SQL命令+;CASE Crystal报告

SQL命令+;CASE Crystal报告,sql,sql-server,crystal-reports,sqlcommand,Sql,Sql Server,Crystal Reports,Sqlcommand,我对SQL命令和CASE有问题。我对Crystal Reports/SQL非常陌生,我有一个基本的代码要学习。我想清除一个字段——它是从SQLServer导入的。我只想做一些简单的事情,比如: SELECT "I"."I_TYPE", "Alleg” = CASE WHEN "ALLEGs"."ALLEG” LIKE ‘*im*’ THEN ‘Improper’ ELSE ‘UNKNOWN’ END 我得到一个错误,该错误表示数据库连接器错误: '42000:[MS]

我对
SQL
命令和
CASE
有问题。我对Crystal Reports/SQL非常陌生,我有一个基本的代码要学习。我想清除一个字段——它是从
SQLServer
导入的。我只想做一些简单的事情,比如:

SELECT  "I"."I_TYPE", "Alleg”  =
CASE  
    WHEN "ALLEGs"."ALLEG”  LIKE ‘*im*’ THEN ‘Improper’
    ELSE ‘UNKNOWN’
END
我得到一个错误,该错误表示数据库连接器错误:

'42000:[MS][SQL..Incorrect syntax near ' . ' . Databse vender code 102. 

甚至可以在SQL命令中使用
CASE
作为
IF-THEN
语句。我知道SQL表达式,但我正在尝试将数据拉入SQL命令以防止性能下降

我不确定crystal report是否正确,但您的查询格式看起来不正确。应该是

SELECT I.I_TYPE, 
CASE WHEN ALLEGs.ALLEG LIKE '%im%' THEN 'Improper' ELSE 'UNKNOWN' END AS 'Alleg'

Rahul对于直接向服务器发送SQL命令是正确的。 然而,有时在运行Crystal报表时,我们在报表中使用VBA进行一些数据调整,而不是动态修改原始SQL

这将为原始SQL留下一个已知的结果(可在SQL Server上验证),然后在Crystal中修改输出以满足最终用户的过滤要求

这对于大的结果集是无效的,但当结果较小(低于50k记录)时,我们通常让我们的团队使用简单(后过滤)来减少设计和测试时间。 此技术与选项部分的动态过滤器配合使用效果非常好

示例:[记录选择]

if {?Select Sales Person} <> "ENT" then
    {R0033___P2A.ProjectionSP} = {?Select Sales Person} and {R0033___P2A.FM} >= 0
else
    {R0033___P2A.ProjectionSP} > ""  and {R0033___P2A.FM} >= 0  
如果{?选择销售人员}“ENT”,则
{R0033_uuuuup2a.ProjectionSP}={选择销售人员}和{R0033_uuuuuuup2a.FM}>=0
其他的
{R0033_uuuuup2a.ProjectionSP}>“”和{R0033_uuuuuup2a.FM}>=0

其中{?Select Sales Person}是一个用户选择过滤器,{R0033_uuuuuup2a}是一个预定义的报表视图或存储过程。

我想你需要
%
像“%im%”一样。
太好了,我错过了。谢谢,谢谢你的回复。我会记住这一点。