皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 288|回复: 10

当前行的其他单元格作为参数进行查询

[复制链接]
发表于 2023-10-23 19:14:44 | 显示全部楼层 |阅读模式
您好,想问下我目前是想做一个表格,当前表格的第一列是日期,日期也是通过sql进行查询之后通过数据集函数select进行展示,第二列的值根据日期进行动态查询 ,
问题1 是如何使用当前行的第一列的值作为参数,进行sql语句查询,
问题2 单元格的函数需要如何设置才能是进行单条查询,如何取值

发表于 2023-10-24 09:05:36 | 显示全部楼层
第一个问题,如果是两个数据集,那么只能有一个数据集有参数,作为参数的数据集不能再有参数。
第二个问题,第一列和第二列是两个数据集,那么第二列以第一列作为查询条件可以使用getone函数。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-10-24 09:14:17 | 显示全部楼层
爱自行车的拓跋 发表于 2023-10-24 09:05
第一个问题,如果是两个数据集,那么只能有一个数据集有参数,作为参数的数据集不能再有参数。
第二个问题 ...

您好,第一个问题具体是使用那个函数呢,比如在第一列表示的是日期,用的函数是数据集=querydates.select(DATES),但是我第3列想把第一列的值作为参数进行传输,第一列是20231024,就传输20231024,相当于是一行就要查一次数据库,那么在sql查询那边的参数要如何写呢?
回复 支持 反对

使用道具 举报

发表于 2023-10-24 09:18:24 | 显示全部楼层
本帖最后由 爱自行车的拓跋 于 2023-10-24 09:19 编辑

不要一行一查数据库,写两个数据集,先把数据放到数据集里,然后第三列用ds.getone(数据,dates=a1)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-24 09:30:19 | 显示全部楼层
本帖最后由 不二 于 2023-10-24 09:31 编辑
爱自行车的拓跋 发表于 2023-10-24 09:18
不要一行一查数据库,写两个数据集,先把数据放到数据集里,然后第三列用ds.getone(数据,dates=a1) ...

可是只能一行行查,我在新建数据集的时候,他是需要查询数据库,查询的时候需要把第一列的日期带过去作为参数,ds的函数用不了呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-24 09:34:02 | 显示全部楼层
不二 发表于 2023-10-24 09:30
可是只能一行行查,我在新建数据集的时候,他是需要查询数据库,查询的时候需要把第一列的日期带过去作为 ...

或者能不能写一个循环,把第一列的集合作为参数进行遍历,然后循环查sql放入一个数据集
回复 支持 反对

使用道具 举报

发表于 2023-10-24 09:38:23 | 显示全部楼层
那你只能用自定义数据集了
回复 支持 反对

使用道具 举报

发表于 2023-10-24 09:45:33 | 显示全部楼层
不二 发表于 2023-10-24 09:34
或者能不能写一个循环,把第一列的集合作为参数进行遍历,然后循环查sql放入一个数据集 ...

可以写存储过程来实现
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-24 17:24:01 | 显示全部楼层
beibm 发表于 2023-10-24 09:45
可以写存储过程来实现

您好,在调用存储过程中,报表中的sql写的是
declare
     p_start_date  varchar2(20):= '2023-05-13';
     p_end_date  varchar2(20):='2023-05-16';
begin
    EB_DISCOUNT(p_start_date ,p_end_date);
END;
在数据库中直接执行是有结果的,为什么报表中一直在报错
数据集[discountnew]的sql异常:ORA-06550: 第 1 行, 第 48 列: PLS-00103: 出现符号 "end-of-file"在需要下列之一时: * & = - + ; < / > at in is mod remainder not rem <> or != or ~= >= <= <> and or like like2 like4 likec between || multiset member submultiset
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-24 17:45:55 | 显示全部楼层
爱自行车的拓跋 发表于 2023-10-24 09:38
那你只能用自定义数据集了

您好,在调用存储过程中,报表中的sql写的是
declare
     p_start_date  varchar2(20):= '2023-05-13';
     p_end_date  varchar2(20):='2023-05-16';
begin
    EB_DISCOUNT(p_start_date ,p_end_date);
END;
在数据库中直接执行是有结果的,为什么报表中一直在报错
数据集[discountnew]的sql异常:ORA-06550: 第 1 行, 第 48 列: PLS-00103: 出现符号 "end-of-file"在需要下列之一时: * & = - + ; < / > at in is mod remainder not rem <> or != or ~= >= <= <> and or like like2 like4 likec between || multiset member submultiset
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2025-2-5 20:43 , Processed in 2.306664 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表