【发布时间】:2015-12-26 06:26:33
【问题描述】:
我有一个 sql 查询 where 子句如下:
WHERE ("Table1"."count"<>"Table1"."onhand"
OR "Table2"."batch_code" IS NOT NULL
OR ("Table1"."BatchMinVariance"<>0 OR "Table1"."BatchMaxVariance"<>0)
)
我在我的代码中使用上述水晶等价物即时设置记录选择:
({Table1.count} <> {Table1.onhand}
or (not isnull({Table2.batch_code})
or ({Table1.BatchMinVariance} <> 0 OR {Table1.BatchMaxVariance} <> 0) )
这工作得很好,水晶处理它显示正确的结果。
要求是在WHERE 子句中添加另一个条件,如下所示:第 4 行是新条件。
WHERE
("Table1"."count"<>"Table1"."onhand"
OR "Table2"."batch_code" IS NOT NULL
OR ("Table1"."BatchMinVariance"<>0 OR "Table1"."BatchMaxVariance"<>0)
OR (CONVERT(varchar, "Table3".in_snapshot_yn) + CONVERT(varchar, "Table3".counted_yn) IN ('01', '10'))
)
注意条件 4 是新条件,我使用了 sql CONVERT 函数,因为这些是布尔字段,因此只显示那些值为 01 或 10 的行。sql 查询给了我预期的结果, 但我正在努力寻找与这种情况对应的水晶。 对于条件 4,我尝试了:
OR (TOTEXT(TONumber({Table3.in_snapshot_yn}), 0)&""&TOTEXT(TONumber({STAKE_SERIALNO.counted_yn}), 0) IN ("01, 11") <> true)
我已经在报告本身中对此进行了测试,以查看水晶是否喜欢,水晶不会抱怨。但是当我将它作为条件 4 放入我的代码时,我不会喜欢它。给出缺少括号 ) 的蹩脚错误。我知道这不是一个括号问题,绝对与条件有关。
完整的 CR 等效条件如下所示:
({TABLE1.count} <> {TABLE1.onhand}
OR (not isnull({Table2.batch_code})
OR ({TABLE1.BatchMinVariance} <> 0 OR {TABLE1.BatchMaxVariance} <> 0) )
OR NOT (TOTEXT(TONumber({Table3.in_snapshot_yn}), 0)&""&TOTEXT(TONumber({Table3.counted_yn}), 0) IN ("01, 11")) )
任何提示将不胜感激。我正在使用 SQL Server 2014 和 CR 13。
【问题讨论】:
标签: c# mysql sql-server crystal-reports crystal-reports-2010