我有一个查询,可以让员工获得,使用和离开的休假时间。我已经修改了“增益”上的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*"));
答案 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和标准通配符*。