Я уверен, что я должен использовать заявление IIF, но я не знаю, как реализовать в этом сценарии ...доступа 2010 SQL, чтобы выбрать один из двух записей
Я пишу запрос, чтобы проверить идентификаторы пользователей из одного места в соответствии с набором основных записей. Однако в некоторых случаях критерии, которые я использую для получения идентификатора пользователя из набора основных записей, иногда ссылаются на более чем один идентификатор пользователя. Один из них - это идентификатор пользователя удаленных людей и один для активного пользователя. В том случае, когда есть две записи вернулся, мне нужен мой запрос, чтобы выбрать активный человек вместо удаленного человека ...
Вот мой запрос до сих пор
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
Спасибо за быстрый ответ. Разве это не устранит все записи, где статус удаляется? Мне все еще нужны записи со статусом удаления (если в MT есть только одна запись) ... но не тогда, когда есть запись, которая ведет к двум записям в МТ, одна удалена и одна активна. – user3708244
А, ты прав. Позвольте мне понять это, и я опубликую обновление. – BClaydon
ОК, так что левое соединение на двух подзапросах - одно для активного для неактивного, а затем сделать coalesc (или Nz in Access), чтобы получить активное, если оно существует. Я напишу вверх и поставлю его наверх. – BClaydon