У меня есть такие значения в этих двух таблицах. Я хочу, чтобы проверить дубликаты в TableA и TableBСравнение строк в таблицах доступа MS
TABLEA
StaffName Shift Hrs
ABC 1 12
DEF 23
XYZ 2
TABLEB
StaffN Sft Hrs
ABC 1 12
DEF 23
XYZ 2
Однако, когда я сделать
SELECT * FROM TABLEA
WHERE NOT EXISTS
(SELECT * FROM TABLEB.StaffN = TABLEA.StaffName AND
TABLEB.Sft = TABLEA.Shift AND
TABLEB.Hrs = TABLEA.Hrs);
Почему я бы вернулся из DEF и XYZ? это из-за пустой ценности? И как я могу изменить выбранный статус, чтобы проверить, является ли оба значения пустыми, то же самое.
ва, но я получил 27 столбцов, смысл должны сделать это трудный путь? – 10e5x
Да, это вызов. Но было бы проблемой расширить свой первоначальный подход до 27 столбцов. Вы можете использовать 'Nz()' как предлагаемое предложение @sgeddes, если ни один из сохраненных номеров не является нулем. Или замените другое «волшебное» число вместо нуля ... если все сохраненные числа положительны, вы можете использовать в качестве сравнения «Nz (a.Shift, -1) = Nz (b.Sft, -1)»). – HansUp
Остерегайтесь 'Nz()' можно использовать только тогда, когда запрос выполняется из сеанса доступа. Если вам нужно запустить запрос из внешнего Access (например, из Dot.Net или Classic ASP), 'Nz()' будет недоступен. В этом случае вы можете использовать 'IIf()' вместо: 'IIf (a.Shift Is Null, -1, a.Shift) = IIf (b.Sft Is Null, -1, b.Sft)' Нули сложны! – HansUp