![]() |
1
2
into temp子句是最后一个-必须在from、where、group by和having子句之后。它不能与order by一起出现,但之后也会出现。 因此(仅以第一个查询为例):
如有可能,您需要重命名更多的列,则:
您的问题“最终选择是什么样子”的答案取决于报告应该产生什么。我已经复制了整个报告(253行),应用了一些最小的重新格式化,并将其减少到193行(在一行上按子句分组;使用
您有6个临时表,它们都是从同一个Boletos表中选择的,具有相同的日期范围,并且在
尚不清楚这些结果应该与联合还是一组联接组合在一起。 如果答案是联合,则需要确保所有中间表的列数与“r”(列数最多的临时表)相同,或者必须使用为每个“窄”表提供的虚拟字段编写联合,以匹配“最宽”表。 如果答案是join,您将需要定义连接条件——我们中不熟悉您的DBMS的人获得正确连接的机会为零。 无论答案是什么(join还是union),您都需要在select中使用order by子句。这将控制向报告显示数据的顺序。 “before group of”和“after group of”子句一次只能列出一个变量。这些变量必须在最终选择的ORDER BY子句中。 看起来有点像要连接6个独立的报表:一个报表使用临时表R;另一个报表使用临时表“i”,然后是“f”等。这不是一个可以轻松进行ACE报表的结构。最好是有6个单独的报告,每个报告都写在一个单独的文件中,然后合并(连接)这些单独的报告。您可能会安排日期作为参数而不是输入,因此用户只需要输入一次日期,但是控制shell脚本运行6个报告,其中两个日期作为参数。 鉴于上面显示的临时表“r”,与之相关的输出格式(在您的头脑中-不幸的是,ace对事物有不同的看法)是:
大多数其他格式化部分都有点相似——它们有相同的四列。两个部分只有3列。我认为您将希望将查询结构为联合查询。 我认为这意味着你将修改你的主要系列查询,如下所示:
您的其他查询将产生相同数量的列。rsequence确保“r”中的行出现在“i”(将rsequence=2)和“f”(将rsequence=3)中的行之前,依此类推。rlabel值允许您正确打印标题。 你的工会将能够做到:
您的格式部分将包含:
由于有两个组没有rcol4的“real”值-您可能只需选择0或sum(0)作为它们的虚拟列,您可能需要:
不过,从现在起,你只能靠自己了。 |
![]() |
2
1
我做了一段时间的信息混合,但我认为
|
![]() |
3
0
语法“select…进入“仅当select返回时有效” 恰好一行 . 如果没有一个结果,您将得到一个错误,如“返回的子请求不是一行”。 |
![]() |
4
0
我用order by和group by解决了这个问题。请注意,在SELECT语句的ORDER BY子句中,列必须以相反的顺序放置。以下ACE报告完成了挑战:
生成数据筛选报告:
|
![]() |
TheBetterJORT · 带有特定邮政编码的正则表达式 7 年前 |
![]() |
esafresa · Informix-将datetime转换为整数 7 年前 |
![]() |
pxr_64 · Informix函数无理由返回 7 年前 |
![]() |
Andy897 · 带准备语句的Informix日期时间 11 年前 |
![]() |
Makky · 使用Maven使用Informix数据库 11 年前 |