找回密码
 立即注册

QQ登录

只需一步,快速开始

此号为空号

初级会员

22

主题

61

帖子

240

积分

初级会员

积分
240
此号为空号
初级会员   /  发表于:2022-9-23 15:45  /   查看:1922  /  回复:8
1金币
我在sql server 编辑器 通过的为何在SQLLITE 报错





update prdt set prdt.up_xs =hs_tf.up from prdt inner join hs_tf on prdt.prd_no= hs_tf.prd_no where hs_tf.hs_no=核价单号;
update hs_mf set state='已审核',CHK_MAN=审核人,CHK_DD=审核日期 where hs_no=核价单号 and  state='未审核';
update hs_tf set state='已审核' where hs_no=核价单号 and  state='未审核';

在SQL 测试报如下错误

还有 sqllite 系统当前日期和当前用户怎么样获取?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

已经解决了,是在SQLITE运行,要2个子查询,SQLITE语法太诡异了! update prdt set up_xs =(select hs_tf.up/hs_tf.qty from hs_tf where prdt.prd_no= hs_tf.prd_no and hs_tf.hs_no=@核价单号) WHERE prdt. prd_no = ( SELECT prd_no FROM hs_tf WHERE hs_tf.prd_no=prdt.prd_no and hs_tf.hs_no=@核价单号)

8 个回复

倒序浏览
最佳答案
最佳答案
此号为空号
初级会员   /  发表于:2022-9-23 15:45:22
来自 8#
David.Zhong 发表于 2022-9-26 10:44
在sqlite上运行确实会有报错。  

大佬目前到底是想在sqlite上运行还是在sqlserver上运行?

已经解决了,是在SQLITE运行,要2个子查询,SQLITE语法太诡异了!
update prdt set up_xs =(select hs_tf.up/hs_tf.qty from  hs_tf where prdt.prd_no= hs_tf.prd_no and hs_tf.hs_no=@核价单号)
WHERE prdt. prd_no = ( SELECT prd_no FROM hs_tf WHERE hs_tf.prd_no=prdt.prd_no and hs_tf.hs_no=@核价单号)
回复 使用道具 举报
leilei6120悬赏达人认证
银牌会员   /  发表于:2022-9-23 16:17:42
2#
没看出你的sql有什么语法错误,但是不保证sqllite和sqlserver语法完全一致,具体你得查一下用法了。
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-9-23 16:24:32
3#
本身语法好像就错了,

先把语法调整正确。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
此号为空号
初级会员   /  发表于:2022-9-23 19:16:44
4#
本帖最后由 此号为空号 于 2022-9-23 20:27 编辑
David.Zhong 发表于 2022-9-23 16:24
本身语法好像就错了,

先把语法调整正确。

视图里 select  hs_tf.up/hs_tf.qty from prdt inner join hs_tf on prdt.prd_no= hs_tf.prd_no where hs_tf.hs_no='HS20220923001'; 成功的

update prdt set prdt.up_xs =hs_tf.up/hs_tf.qty from prdt inner join hs_tf on prdt.prd_no= hs_tf.prd_no where hs_tf.hs_no=@核价单号;
update hs_mf set state='已审核',CHK_MAN=@审核人,CHK_DD=date('now') where hs_no=@核价单号 and  state='未审核';
update hs_tf set state='已审核' where hs_no=@核价单号 and  state='未审核';






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
此号为空号
初级会员   /  发表于:2022-9-24 21:40:22
5#
本帖最后由 此号为空号 于 2022-9-24 21:46 编辑

--SQL Server语法
update prdt set prdt.up_xs =hs_tf.up/hs_tf.qty from prdt inner join hs_tf on prdt.prd_no= hs_tf.prd_no where hs_tf.hs_no=@核价单号;
--SQLite语法  
请问是prdt表字段所有的数据都更新为与传参数核价单号一致,还是ptdt表和hs_ts表单号为传参数的核价单号内连接的数据更新?
update prdt set up_xs =(select hs_tf.up/hs_tf.qty from prdt inner join hs_tf on prdt.prd_no= hs_tf.prd_no where hs_tf.hs_no=@核价单号);

想要SQL Server运行的结果,怎么修改???
回复 使用道具 举报
此号为空号
初级会员   /  发表于:2022-9-24 21:45:03
6#
本帖最后由 此号为空号 于 2022-9-25 08:00 编辑
此号为空号 发表于 2022-9-24 21:40
--SQL Server语法
update prdt set prdt.up_xs =hs_tf.up/hs_tf.qty from prdt inner join hs_tf on prdt. ...

我想要是第二个效果,
想要SQL Server运行的结果?怎么修改



update prdt set up_xs =(select hs_tf.up/hs_tf.qty from  hs_tf where prdt.prd_no= hs_tf.prd_no and hs_tf.hs_no=@核价单号)
WHERE prdt. prd_no = ( SELECT prd_no FROM hs_tf WHERE hs_tf.prd_no=prdt.prd_no and hs_tf.hs_no=@核价单号)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-9-26 10:44:23
7#
在sqlite上运行确实会有报错。  

大佬目前到底是想在sqlite上运行还是在sqlserver上运行?
如果是在sqlserver上也报错的话,可否看看大佬在sql server上的执行日志?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-9-26 12:15:44
9#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部