为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:LINUX
【CPU】:
【问题描述】*:
表1:
CREATE TABLE "WATER_DATA"."TR_UNDERWATER_STATION_INFO"
(
"mnName" VARCHAR(100),
"mn" VARCHAR(20),
"stName" VARCHAR(100),
"st" VARCHAR(10),
"createTime" DATETIME(6),
);
表2:
CREATE TABLE WATER_DATA.TR_UNDERWATER_STATION_LEVEL_DATA
(
"waterName" VARCHAR(50),
"mnNo" VARCHAR(20),
"waterLevel" NUMBER(10,0),
"dataTime" DATETIME(6),
"LIST" VARCHAR(20000)) ;
SQL1: select
distinct mnno
from WATER_DATA.TR_UNDERWATER_STATION_LEVEL_DATA
where dataTime > DATE_ADD(GETDATE(),INTERVAL '-2' day) order by mnno
SQL2: select mn from WATER_DATA.TR_UNDERWATER_STATION_INFO where STATION_SOURCE_TYPE = '01' order by mn
SQL3: select
count(*)
from (
select
distinct mnno
from WATER_DATA.TR_UNDERWATER_STATION_LEVEL_DATA
where dataTime > DATE_ADD(GETDATE(),INTERVAL '-2' day) order by mnno) a
where a.mnNo in (
select mn from WATER_DATA.TR_UNDERWATER_STATION_INFO where STATION_SOURCE_TYPE = '01' order by mn);
SQL4: select count(distinct mnno) from WATER_DATA.TR_UNDERWATER_STATION_LEVEL_DATA
where
dataTime > DATE_ADD(GETDATE(),INTERVAL '-2' day)
and mnNo in (
select mn from WATER_DATA.TR_UNDERWATER_STATION_INFO where STATION_SOURCE_TYPE = '01');
SQL5: select count(distinct mnno) from WATER_DATA.TR_UNDERWATER_STATION_LEVEL_DATA
where
dataTime > DATE_ADD(GETDATE(),INTERVAL '-6' MONTH)
and mnNo in (
select mn from WATER_DATA.TR_UNDERWATER_STATION_INFO where STATION_SOURCE_TYPE = '01');
问题1:SQL1和SQL2的查询结果集编码相同的有19个,但是SQL3查询出来的数量为0;
问题2:SQL4查询出来的数量是23,实际应该是19。
问题3:SQL5查询出来的结果是0,实际应该是23
建议使用最新版在进行测试呢

SQL2使用的STATION_SOURCE_TYPE 字段贴出来的表中没有,方便的话可以dexp导出一下这两张表和测试数据(脱敏),select id_code补充一下版本