MS-Access 2003 SQL ALike修改无法正常工作

时间:2012-12-18 17:02:33

标签: sql ms-access-2003

我有一个查询,可以让员工获得,使用和离开的休假时间。我已经修改了“增益”上的ALike语句以查找“周年纪念日”然后返回值。它现在返回0 Iif的失败语句。这是SQL。

SELECT 
       SchedulingLog.UserID, 
       SchedulingLog.Category, 
       Sum(IIf([CatDetail] ALike 'Anniversary*',[Value],0)) AS Gain, 
       Sum(IIf(CatDetail ALike '%Used',[Value],0)) AS Used, [Gain]+[Used] AS [Left]
FROM SchedulingLog
GROUP BY SchedulingLog.UserID, SchedulingLog.Category
HAVING (((SchedulingLog.Category) Like "Vac*"));

3 个答案:

答案 0 :(得分:2)

当您使用Alike时,您将使用ANSI通配符(%)而不是Jet的默认值(*)。

所以

WHERE FieldName Like 'Something*'

将是

WHERE FieldName ALike 'Something%'

答案 1 :(得分:1)

有几件事。我想你想要'Anniversary%'和'Vac%' 我建议使用like函数和相似的函数。我已经读过访问确实通过ADO连接支持,但没有记录我可以找到。

验证CatDetail是否包含源表中“AnniversaryXXXXX”形式的数据,如果该列并非始终以“Anniversary”开头,则可能需要将其修改为“%Anniversary%”

答案 2 :(得分:1)

您使用标准ANSI SQL设置纯粹在MS Access中工作,这是正确的吗?如果是这样,就没有必要使用ALike复杂化,只需使用Like和标准通配符*。