采集报表的重复数据校验问题

采集报表有3列,分别是:A2:id ,自动生成32位随机码且随机码固定

B2:班组 ,根据账号自动生成

C2:名称 ,手工录入

录入数据时,要求同一班组下,名称不可重复。需要做两部分校验:1、校验本次录入的名称是否重复,已实现;

2、校验本地录入的名称与数据库中的同一班组下的名称是否有重复,这个尚未实现,也是问题所在。

细化:2.1如果是新录入的数据,检查同一班组下的名称是否重复,已实现

校验公式如下:

SQL("KFGH", "SELECT count(1) FROM 表名 WHERE banzu = '" + B2 + "' AND name = '" + C2 + "'", 1) = 0 

2.2但是如果是修改已录入的数据,上面的公式就不行了。

然后我的想法是再加一个条件,因为新数据,其id字段为空,而修改数据,其id是32位随机码,只是不知道这样写是否可以。校验公式如下:

OR(

SQL("KFGH", "SELECT count(1) FROM 表名 WHERE banzu = '" + B2 + "' AND name = '" + C2 + "' AND  LEN('" + A2 + "')=0", 1) = 0,

SQL("KFGH", "SELECT count(1) FROM 表名 WHERE banzu = '" + B2 + "' AND name = '" + C2 + "' AND  LEN('" + A2 + "')>0", 1) = 1

     )

由于LEN('" + A2 + "')并不是where的条件,这里不会写。

请赐教。

FineReport 来无影 发布于 2022-2-10 12:24 (编辑于 2022-2-10 12:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-2-10 12:39(编辑于 2022-2-10 12:40)

OR(

AND( SQL("KFGH", "SELECT count(1) FROM 表名 WHERE banzu = '" + B2 + "' AND name = '" + C2 + "'", 1) = 0,LEN(A2)=0),

AND (SQL("KFGH", "SELECT count(1) FROM 表名 WHERE banzu = '" + B2 + "' AND name = '" + C2 + "'", 1) = 1,LEN(A2)=0)

     )

改成上面语句判断

  • 来无影 来无影(提问者) 你这个对,和我写的相同。开始没有想明白,len(A2)=0这个条件,需要写在外面。
    2022-02-10 12:47 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-2-10 12:37

if(len(a2)>0,"你的sql判断","你的sql判断")

最佳回答
0
来无影Lv3见习互助
发布于2022-2-10 12:40(编辑于 2022-2-10 12:53)
  • 2关注人数
  • 445浏览人数
  • 最后回答于:2022-2-10 12:53
    请选择关闭问题的原因
    确定 取消
    返回顶部