求助,在access中通过的脚本,为何在sql 报表服务器中报错呢?

AD5W5U 2011-08-08 11:13:11
SELECT ui.userid AS 员工ID, ui.Name AS 员工姓名, cio.CHECKTIME AS 打卡时间, IIf(Weekday(cio.CHECKTIME)=2,"星期一",IIf(Weekday(cio.CHECKTIME)=3,"星期二",IIf(Weekday(cio.CHECKTIME)=4,"星期三",IIf(Weekday(cio.CHECKTIME)=5,"星期四",IIf(Weekday(cio.CHECKTIME)=6,"星期五",IIf(Weekday(cio.CHECKTIME)=7,"星期六",IIf(Weekday(cio.CHECKTIME)=1,"星期日","日期错误"))))))) AS 星期
FROM CHECKINOUT AS cio, USERINFO AS ui
WHERE (((cio.USERID)=[ui].[USERID]) AND ((Format([cio].[CHECKTIME],"yyyy-mm-dd"))=Format(Date(),"yyyy-mm-dd")))
ORDER BY ui.Name, cio.CHECKTIME;


上面代码在access库中执行正常。
放到报表服务其中报错如下:
ERROR [07002] [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 9。


请问如何解,谢谢!
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-08-08
  • 打赏
  • 举报
回复
建议去其他数据库版问问
AcHerat 2011-08-08
  • 打赏
  • 举报
回复
楼主报表是用SQL呢还是ACCESS,如果是SQL,最后重新写SQL语句来实现和楼主表述相同的效果。
ITOfficeBoy 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 geniuswjt 的回复:]

IIf(Weekday(cio.CHECKTIME)=2,"星期一",
这个不才没见过
[/Quote]

Hi AD5W5U,
如二楼所说,IIF的三元判断使用于Access,但不支持MSSQL。
建议用Case...When...Then...Else...End
cutebear2008 2011-08-08
  • 打赏
  • 举报
回复
access和sql server 的语法不一样的吧!
geniuswjt 2011-08-08
  • 打赏
  • 举报
回复
IIf(Weekday(cio.CHECKTIME)=2,"星期一",
这个不才没见过
ACMAIN_CHM 2011-08-08
  • 打赏
  • 举报
回复
那IIF改成SQL SERVER的CASE WHEN。这个你不是已经有例子了吗?
AD5W5U 2011-08-08
  • 打赏
  • 举报
回复
ACMAIN_CHM

要怎么修改才能达到效果呢?
ACMAIN_CHM 2011-08-08
  • 打赏
  • 举报
回复
SQL SERVER 中不支持IIF, 而ACCESS中同样也不支持CASE WHEN。 只能自己修改语句。
AD5W5U 2011-08-08
  • 打赏
  • 举报
回复
是这样的:
数据库用的是access,报表用的是sql报表服务
数据源用的是odbc

我也不怎么会access,上面的代码也是好不容易写出来的,在access里面可以执行,但到sql报表里面就报错。

另外,好像access不支持case when

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧