Там есть несколько вещей, что здесь происходит.
One: Для того, чтобы иметь поля результирующего набора, они должны быть включены в SELECT
часть запроса:
Select AccountID, AuditDate, SourceVersion, InvalidPrinterAudit.PrinterAuditID, InvalidPrinterAudit.AuditID, InvalidPrinterAudit.SerialNr, InvalidPrinterAudit.PageCountTotal,InvalidPrinterAudit.PageCountColor, InvalidPrinterAudit.PageCountMono
From Audit
Left join (
Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal,a.PageCountColor, A.PageCountMono
from InvalidPrinterAudit A
where A.DeviceID = 90757
) InvalidPrinterAudit on InvalidPrinterAudit.AuditID = Audit.AuditID
Два: Вам не нужно иметь подзапрос Вот. Подзапросы великолепны, если вам нужно агрегировать результаты из отдельной таблицы или чего-то еще, но здесь вы можете просто пойти с LEFT OUTER JOIN и покончить с этим.
Select AccountID, AuditDate, SourceVersion, InvalidPrinterAudit.PrinterAuditID, InvalidPrinterAudit.AuditID, InvalidPrinterAudit.SerialNr, InvalidPrinterAudit.PageCountTotal,InvalidPrinterAudit.PageCountColor, InvalidPrinterAudit.PageCountMono
From Audit
Left OUTER JOIN InvalidPrinterAudit
ON InvalidPrinterAudit.AuditID = Audit.AuditID
AND InvalidPrinterAudit.DeviceID = 90757
Это будет применять этот DeviceID = 90757
фильтр к вашему InvalidPrinterAudit
до присоединиться применяется, так что вы все равно получите все ваши Audit
записей, а затем только InvalidPrinterAudit
записи для этого DeviceID, который соответствует.
Попробуйте это, Выберите Audit.AccountID, Audit.AuditDate, Audit.SourceVersion, A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal, A.PageCountColor, A.PageCountMono от аудита, как аудит LEFT JOIN InvalidPrinterAudit как A on (A.InvalidPrinterAudit = Audit.AuditID), где A.DeviceID = 90757 – Ram
Возвращает ли внутренний запрос что-либо? Не имеет значения. –
Да Внутренний выбор вернет данные, Спасибо RAM !!! вы получили его на работу, мне пришлось изменить имя столбца, но он теперь работает – Brett