【发布时间】:2014-09-10 20:46:25
【问题描述】:
我很确定我必须使用 IIF 语句,但我不确定如何在这种情况下实现它......
我正在编写一个查询,以根据主记录集从一个地方检查用户 ID。但是在某些情况下,我用来从主记录集中获取用户 ID 的标准有时会链接到多个用户 ID。一种是针对已删除人员的用户 ID,一种是针对处于活动状态的用户。在返回两条记录的情况下,我需要我的查询来选择活跃的人而不是删除的人...
这是我目前的查询
INSERT INTO VExceptions ( Carrier, [Wireless Number], Period, Carrier_UserName, Carrier_UserID, Parsed_PersNo_Carrier, MT_UserID, MT_Cost_Center, MT_Status, [CountOfUser ID], IsSpare )
SELECT LoadFile_VCharges.Carrier, LoadFile_VCharges.[Wireless Number], LoadFile_VCharges.Period, LoadFile_VCharges.[User Name], LoadFile_VCharges.[User ID], LoadFile_VCharges.[Personnel Number], MT.UserID, MT.CostCenter, MT.Status, Count(MT.UserID) AS CountOfUserID, IIf(InStr(1,[User Name],"SPARE")>0,1,0) AS IsSpare
FROM LoadFile_VCharges LEFT JOIN MT ON LoadFile_VCharges.[Personnel Number] = MT.PersonnelNumber
GROUP BY LoadFile_VCharges.Carrier, LoadFile_VCharges.[Wireless Number], LoadFile_VCharges.Period, LoadFile_VCharges.[User Name], LoadFile_VCharges.[User ID], LoadFile_VCharges.[Personnel Number], MT.UserID, MT.CostCenter, MT.Status, IIf(InStr(1,[User Name],"SPARE")>0,1,0)
HAVING (((LoadFile_VCharges.[User ID])="NA" Or (LoadFile_VCharges.[User ID])<> [MT].[UserID]))
ORDER BY LoadFile_VCharges.[Wireless Number];
除了有时选择错误的记录之外,这个查询工作正常......
任何建议将不胜感激。
问候,
AG
【问题讨论】:
标签: sql ms-access-2010 iif