为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8 小版本1-2-84-21.10.21-149328-10032-ENT
DM管理工具 V8 (Build 2021.10.21)
【操作系统】:W10
【问题描述】:这条SQL在mysql中是可以运行的
换到达梦就不行了 想咨询下原因是否是AS的语法错误还是说别的,表列名都是小写的,数据库也是 非大小写敏感的
SQL语句【SELECT formtype as forms, (
SELECT count() FROM zhjw_jingliform WHERE kssj BETWEEN ‘2021-12-30 08:00:00’ AND ‘2022-12-30 08:00:00’ and shenpistatus = 1 and formtype = forms
) sub
FROM zhjw_jingliform
WHERE kssj BETWEEN ‘2021-12-30 08:00:00’ AND ‘2022-12-30 08:00:00’ and shenpistatus = 1
group by formtype ;
】
可以在管理工具SQL编辑区右键选择,格式化;把sql整理下格式再执行,定位错误更准确;
另外你的图上的执行的SQL比贴出来的多了一个and formtype=forms
执行这个select id_code;查下具体小版本,然后再看下管理工具“帮助”-“关于” 管理工具的版本日期。
在我这边本地模拟测试是正常的。
create table zhjw_jingliform(formtype varchar(100),kssj datetime,shenpistatus int);
insert into zhjw_jingliform values(‘A’,‘2021-12-30 08:00:00’,1);
insert into zhjw_jingliform values(‘B’,‘2021-12-29 08:00:00’,0);
insert into zhjw_jingliform values(‘C’,‘2021-12-30 08:00:00’,1);
insert into zhjw_jingliform values(‘D’,‘2022-12-30 08:00:00’,1);
COMMIT;
SELECT

formtype as forms,
(
SELECT
count(*)
FROM
zhjw_jingliform
WHERE
kssj BETWEEN ‘2021-12-30 08:00:00’ AND ‘2022-12-30 08:00:00’
and shenpistatus = 1
)
sub
FROM
zhjw_jingliform
WHERE
kssj BETWEEN ‘2021-12-30 08:00:00’ AND ‘2022-12-30 08:00:00’
and shenpistatus = 1
group by
formtype ;