sql问题

这段查询SQL,怎么把查询结果当作外层sql的查询字段或者分组字段。image.png

FineReport 谢广坤 发布于 2025-2-18 08:47
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2025-2-18 08:52

什么意思

这个做子表被其他sql查询

那就是

select * from  (你的sql语句)

  • 谢广坤 谢广坤(提问者) 这个问题比较绕。比如查询出来的结果如图所示,需要把field1,field2 作为外层查询的分组字段。原来用的方法是把这个field1,field2值放在控件中,外层SQL取${控件名},但是会遇到加载顺序的问题,${控件名}肯能会比sql晚加载
    2025-02-18 08:57 
  • snrtuemc snrtuemc 回复 谢广坤(提问者) 那还是我讲个这个格式,例如你的结果中,假设field1,field2 字select_files字段,那就是
    select * from 表 where 字段=(select select_files from (你的sql语句))
    还是嵌套一下
    2025-02-18 09:04 
  • 谢广坤 谢广坤(提问者) 回复 snrtuemc where 肯定能写子查询。是当作查询字段或者分组字段
    2025-02-18 09:11 
最佳回答
0
快乐星光Lv5中级互助
发布于2025-2-18 08:56

如果你的意思是用这个sql1的结果当作另一个sql2的查询字段名称来用,那就最好在存储里面执行,使用字符串拼接来组成最终需要的查询语句。如果这个sql1的查询结果有多行,那还需使用游标。

  • 谢广坤 谢广坤(提问者) 查询结果只有一行。有不适用存储过程的方法吗?
    2025-02-18 09:00 
  • 快乐星光 快乐星光 回复 谢广坤(提问者) 如果sql1的admin 和 1 是固定值,那你试一下直接在ds里面写sql2:【select 控件1,控件2 from 表 】。在下面的控件公式里面直用sql公式。
    2025-02-18 09:10 
  • 谢广坤 谢广坤(提问者) 回复 快乐星光 控件会遇到加载顺序的问题。有时候取不到值
    2025-02-18 09:15 
  • 谢广坤 谢广坤(提问者) 还有个问题是,sql1中不是固定的。需要通过下拉框选择,select_field 字段的值是变化的。其实就是动态分组
    2025-02-18 09:24 
  • 快乐星光 快乐星光 回复 谢广坤(提问者) 那你这必须要用存储啊。
    2025-02-18 09:25 
最佳回答
0
帆软用户LRQWtWderzLv3见习互助
发布于2025-2-18 09:49

把值放在模版参数中,通过SQL函数取field1,这样应该不会有加载顺序问题

  • 谢广坤 谢广坤(提问者) 但是field1的值是不固定的。需要另一个控件去筛选变化。WHERE rtm.role id='admin' and template id='1。的admin可以采用角色参数,这个1 其实是选择变化的
    2025-02-18 10:00 
  • 帆软用户LRQWtWderz 帆软用户LRQWtWderz 回复 谢广坤(提问者) 可以的,SQL函数里面可以用控件值
    2025-02-18 10:20 
  • 谢广坤 谢广坤(提问者) 回复 帆软用户LRQWtWderz 这个需要测试加载顺序的问题。控件→模板参数→数据集。
    2025-02-18 11:27 
  • 4关注人数
  • 96浏览人数
  • 最后回答于:2025-2-18 09:49
    请选择关闭问题的原因
    确定 取消
    返回顶部