Сначала я объясню свой сценарий. Вот 2 общие таблицы:
Счета:
LegacyID = Идентификатор
счет
InvoiceAccount = Учетная запись может иметь
несколько субсчетов в одном
Таблица. Это поле является LegacyID
его родительского счета
Клиент = Может быть два разных
типы учетных записей, и они могут поделиться
Идентификаторы - таким образом, этот столбец различает
между 2. Для целей моего
SQL Я всегда хочу, чтобы это было правдой, а
чем ложь
AllocatedUser = Имя пользователя
человек, которому нужно это увидеть
поставки. Это только на
родительский аккаунт, поэтому мне нужно связать
назад, чтобы получить это для субсчетов
Доставка:
LegacyID = Идентификатор доставки
Клиент = LegacyID учетной записи
связанных с доставкой (может быть
субсчет)
OnHold = флаг, который для целей
моего запроса должно быть 'true'
Теперь это объяснено, в основном мне нужен SQL, который возвращает любые доставки, которые 'OnHold', но только для доставок для учетных записей, которые выделены вошедшему в систему пользователю. Запрос на выбор AllocatedUser, если ссылки доставки на родительский аккаунт, был простым, но у меня возникают проблемы с возвратом строк, если доставка связана с субсчетом - он просто не возвращает никаких. Вот SQL ниже:
SELECT Deliveries_1.LegacyID, Deliveries_1.TripDate, Deliveries_1.OnHoldReason, Account_2.AllocatedUser
FROM Deliveries AS Deliveries_1 INNER JOIN
Account AS Account_1 ON Deliveries_1.Customer = Account_1.InvoiceAccount INNER JOIN
Account AS Account_2 ON Account_1.InvoiceAccount = Account_2.LegacyID
WHERE (Deliveries_1.OnHold = @OnHold) AND (Account_2.Customer = 'True') AND (Account_2.AllocatedUser = @AllocatedUser)
Мой разум измотан попытками понять, почему он не работает в данный момент - я действительно буду признателен за любой совет.
Спасибо!