标题:这样的select语句如何写?
只看楼主
laocaixg
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-10-29
得分:0 
Microsoft JET Database Engine 错误 '80040e07'

标准表达式中数据类型不匹配。

/inc/head.asp,行 87

求助高手帮忙解决一下这个问题,谢谢!

试了一下,不行。是我把代码弄错了,应该是下面的代码:
    Else
            Sql="Select city_oneid,city_twoid,city_threeid,[title],uid,[Text] From [china_data] Where mark='yes' and stop >= '"&date()&"' and adid="&id
        End If
    Else
        Sql="Select city_oneid,city_twoid,city_threeid,[title],adid,[Text] From [news_data] Where adid="&id
    End If
(87行)Set Rs=Conn.Execute(Sql)
    If Not Rs.Eof Then
        city_oneid=Rs(0)
        city_twoid=Rs(1)
        city_threeid=Rs(2)
        WebTitle=Rs(3)&" "
        WebText=Rs(5)
        If ScriptName="show.asp" Then
2011-10-29 11:32
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
stop >= '"&date()&"'
日期时间型数据是不能使用>=、<=、>、<、=这些逻辑运算符直接比较,只能借助DateDiff函数进行比较
2011-10-29 12:17
hujj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:32
专家分:131
注 册:2006-5-1
得分:0 
今天测试了一下午,问题仍末解决!
我按照版主5楼的代码测试:
语句1,先按年份排序再按日期排序,年份是一样的就会自动分组
select TOP 1 * from [tablename] order by [year] desc,[day] desc
得到的结果是最后一年的全部记录;

语句2,先按年份分组不排序,再按日期排序
select TOP 1 * from [tablename] group by [year] order by [day] desc
得到的是最后一年日期最大的一条记录,并不是我所需要的每年一条日期最大的记录。

我用下列语句好象的得到的所需的记录:
select yyyy,max(ymdt) from mytxt group by yyyy order by yyyyy
但日期字段引用不了,用=rs("ymdt")、=rs("max_ymdt")、=rs("max(ymdt)")均出现下列提示:
ADODB.Recordset错误 '800a0cc1'
在对应所需名称或序数的集合中,未找到项目。
不引用这个字段,即不显示每年的最大日期,则可以显示每年的一条记录。

在VFP的select语句中,如果用了函数,则需要用函数名+下划线+字段名进行引用,可在ASP中应该如何引用呢?
2011-10-30 19:39
hujj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:32
专家分:131
注 册:2006-5-1
得分:0 
通过上网查询,还是使用别名解决了问题!

我在昨天测试时也试过别名,但我按照VFP的习惯省略了as,所以测试没有通过,今天加上了as,测试就通过了。
在此感谢所有关注过此贴的坛友!


[ 本帖最后由 hujj 于 2011-10-31 07:48 编辑 ]
2011-10-31 07:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-353429-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073279 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved