从WHERE中修改SELECT

时间:2011-12-09 08:29:42

标签: sql avaya

背景

我正在Avaya CMS Supervisor中撰写报告。现在,如果你不知道那是什么,它并不重要,因为问题是关于SQL的。但如果你知道它,那么它肯定会有所帮助。

在此程序中,您可以创建将数据从数据库中提取出来的报告(然后显示给用户)。事情是;要创建这些报告,您必须使用(荒谬)形式的可视化点击 - 选择 - 项目类型的查询构建器。但是,你可以做的是定义要选择的每个项目(在SELECT - 子句中)和WHERE - 子句中的每个项目。

现在,我的问题是访问用户输入的唯一方法是WHERE

问题:

是否可以通过任何黑客或其他方式修改WHERESELECT中显示的值?

如果简单的SQL查询具有(变量)变量,那么它或多或少都有效:

SELECT drv-tbl.$A
FROM drv-tbl
WHERE
    $b = (SELECT value AS $A FROM table) AS drv-tbl

2 个答案:

答案 0 :(得分:1)

虽然有点迟了但是:没有标准的方法可以做到这一点。一种hacky方式是将您需要的报告保存到文件,编辑它并加载回CMS Supervisor。这样,您就可以使用CMS中Informix服务器支持的几乎任何类型的查询。

稍微更简单且仍然在保修范围内的方法是直接从Informix转储您需要的数据,将其加载到Excel或其他任何地方并在那里处理。请参阅我的文章,了解如何访问Informix数据:http://avaya.dwalin.ru/call-management-system/tutorial-using-informix-tools-to-access-cms-historical-database/

答案 1 :(得分:0)

更简单的方法是创建一个自定义数据库视图(名称必须以c_开头),它封装了您尝试应用的逻辑。在视图工作之后,您必须进入CMS字典并将视图添加为自定义表并添加每个列。这是必需的,因为这是Designer可以使用视图的唯一方式。