查询 T_TEMP_CUSTOMER 表中 erpnumber 字段在 T_BD_CUSTOMER表中 fnumber 字段中是否有重复
时间: 2024-01-16 15:04:27 浏览: 29
可以使用 SQL 语句进行查询,具体语句如下:
```
SELECT erpnumber, COUNT(*) AS count
FROM T_TEMP_CUSTOMER
WHERE erpnumber IN (
SELECT fnumber
FROM T_BD_CUSTOMER
)
GROUP BY erpnumber
HAVING count > 1;
```
这条 SQL 语句会先在 T_BD_CUSTOMER 表中查询所有 fnumber 字段的值,然后在 T_TEMP_CUSTOMER 表中查找 erpnumber 字段的值是否在 fnumber 字段的值中存在,如果存在则统计出现次数,最后只返回出现次数大于 1 的重复数据。
相关问题
MERGE INTO t_org_baseunit a USING t_org_baseunit_temp_20230607 b ON (a.fnumber = b.fnumber) WHEN MATCHED THEN UPDATE SET a.cfehrorgnumber = b.cfehrorgnumber, a.flastupdatetime = SYSDATE
这是一条 SQL 语句,它的作用是将 t_org_baseunit_temp_20230607 表中的数据更新到 t_org_baseunit 表中。具体操作是将两个表中 fnumber 字段相同的记录进行匹配,然后将 t_org_baseunit 表中匹配到的记录更新,设置 cfehrorgnumber 和 flastupdatetime 字段的值为 t_org_baseunit_temp_20230607 表中对应记录的值。其中,UPDATE SET 语句用于更新字段的值,SYSDATE 函数用于获取当前系统时间。
debug下面的代码:select c1.FCUSTID 内码, c1.FNUMBER 客户编码, c1.FFORBIDSTATUS 禁用状态, c1.FFAX 报表代理商, c1.F_GN_GROUPNUMBER 客户分组编号, c1.F_QYJL 区域经理, c1.F_KFY 订单员,c2.FNAME 客户名称 from T_BD_CUSTOMER c1, T_BD_CUSTLOCATION c2 inner join T_BD_CUSTLOCATION c2 on (c1. FNUMBER = c2. FNUMBER) where FFORBIDSTATUS = "A"
这个SQL查询语句存在一个语法错误,应该改成下面这样:
```
SELECT c1.FCUSTID 内码, c1.FNUMBER 客户编码, c1.FFORBIDSTATUS 禁用状态, c1.FFAX 报表代理商, c1.F_GN_GROUPNUMBER 客户分组编号, c1.F_QYJL 区域经理, c1.F_KFY 订单员, c2.FNAME 客户名称
FROM T_BD_CUSTOMER c1
INNER JOIN T_BD_CUSTLOCATION c2 ON c1.FNUMBER = c2.FNUMBER
WHERE FFORBIDSTATUS = 'A'
```
这个查询语句使用了INNER JOIN关键字来关联T_BD_CUSTOMER表和T_BD_CUSTLOCATION表,按照FNUMBER字段进行关联。同时,将条件筛选放到了WHERE子句中,使用单引号来表示字符串常量。