表中有两个字段:
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返回值不是数值吗?
没试出来,还请赐教。我改成
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又可以了,但我需要在一个语句中执行,有什么办法啊?
不好意思, 请问怎样加别名?是象这样吗?
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<>'年月日'.....’”
到底该怎么写呢,急死我了!!!