设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 704|回复: 5
打印 上一主题 下一主题

[其它] 请问这句SQL的错误?

[复制链接]
跳转到指定楼层
1#
发表于 2003-6-4 23:27:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
表中有两个字段:
je(金额),数值型;
rq(日期),字符型,格式如“2003年05月24日”
如何通过一个sql语句将不是本周金额的进行合计?
使用如下语句
SELECT sum(je) AS j FROM (SELECT je,mid([rq],1,4)+'-'+mid([rq],6,2)+'-'+mid([rq],9,2) AS d1, date() AS d2, datediff('ww',d1,d2) AS d3 FROM htzl where rq<>'年月日') WHERE je1<>0 and d3<>0;
提示“标准表达式中数据类型不匹配”,如去掉 and d3<>0则正确,请问那里出错,datediff返回值不是数值吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2003-6-5 16:16:00 | 只看该作者
象这种一般是语法问题,注意调试一下就OK了。
3#
 楼主| 发表于 2003-6-5 19:54:00 | 只看该作者
没试出来,还请赐教。我改成
select * from (select je,datepart('ww',cvdate(rq)) as w,datepart('ww',date()) as w2 from htzl where rq1<>'年月日') where w<>w2
但还是不行,如果去掉where w<>w2则可以执行,仍提示数据类型不匹配,真是见鬼,同样用datepart运算的,怎么会不匹配?
如果改成输出到一个表中,在用where w<>w2又可以了,但我需要在一个语句中执行,有什么办法啊?
4#
发表于 2003-6-5 21:46:00 | 只看该作者
套嵌没写别名,where里面也没写 别名.w
改了以后再试。
5#
 楼主| 发表于 2003-6-6 16:37:00 | 只看该作者
不好意思, 请问怎样加别名?是象这样吗?
SELECT w, w2
FROM (SELECT je1, rq1, datepart('ww',cvdate(rq1)) AS w, datepart('ww',date()) AS w2
FROM htzl as tmp
WHERE rq1<>'年月日')  AS tmp2
WHERE tmp.w<>tmp.w2;
但执行结果是“microsoft jet数据库引擎找不到输入表或查询‘SELECT je1, rq1, datepart('ww',cvdate(rq1)) AS w, datepart('ww',date()) AS w2
FROM htzl as tmp
WHERE rq1<>'年月日'.....’”
到底该怎么写呢,急死我了!!!
6#
发表于 2003-6-8 23:20:00 | 只看该作者
你把rq(日期)改为日期/时间类型,定义它的显示格式,这应该是一个很简单的查询。
有可能是你里面的字符数据不是日期格式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 02:31 , Processed in 0.103432 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表