У меня есть вызов SQL, который поражает мой мозг. Я пытаюсь согласовать два отчета для лицензий приложения.
Первый отчет - это таблица базы данных доступа. Он был создан и поддерживается вручную моими предшественниками. Каждый раз, когда они устанавливали или удаляли приложение, они обновляли таблицу более или менее вручную. Он содержит различные столбцы противоречивых данных, в том числе имя (displayName), идентификатор сети (SAMAccountName) и имя компьютера. Каждая запись имеет значение хотя бы для одного из этих полей. Большинство из них имеют только 1 или 2 значения.
Второй отчет основан на инвентаризации SMS. Он имеет три столбца: NetbiosName для имени компьютера, SAMAccountName и displayName. Каждая запись имеет имя NetbiosName, но в SAMAccountName и displayName есть несколько нулей.
Я импортировал оба этих файла в виде таблиц в базу данных MS SQL Server 2005.
Что мне нужно сделать, так это получить отчет по каждой записи в таблице Access, которой нет в таблице SMS, и наоборот. Я думаю, что это можно сделать с помощью правильно сформированного соединения и предложения where, но я не понимаю, как это сделать.
Изменить, чтобы добавить больше деталей:
Если записи соответствуют хотя бы одному из трех столбцов, это совпадение. Поэтому мне нужны записи из таблицы Access, в которой имя, NetworkID и ComputerName отсутствуют в таблице SMS. Я могу сделать это для любого столбца, но не вижу, как объединить все три столбца.