Похоже, вы ищете агрегированный запрос. Это означает, что вам нужно перечислить все неагрегированные столбцы в предложении group by
. Это будет выглядеть так:
select
v.VendorID,
v.VendorName,
v.VendorCity,
v.VendorState,
v.VendorPhone,
concat(v.VendorContactFName, ' ', v.VendorContactFName) AS VendorContactFullName,
max(iv.InvoiceDueDate)
from Vendors v
inner join InvoiceArchive IVA on v.VendorID = IVA.VendorID
where v.VendorCity in ('California','Arizona','Nevada')
group by
v.VendorID,
v.VendorName,
v.VendorCity,
v.VendorState,
v.VendorPhone,
v.VendorContactFName,
v.VendorContactFName
Обратите внимание, что в этом запросе все имена столбцов квалифицированы с таблицей, к которой они принадлежат.
Вы можете получить те же результаты с cross apply
, который не требует агрегирования:
select
v.VendorID,
v.VendorName,
v.VendorCity,
v.VendorState,
v.VendorPhone,
concat(v.VendorContactFName, ' ', v.VendorContactFName) AS VendorContactFullName,
iv.MaxInvoiceDueDate
from Vendors v
cross apply (
select max(iva.InvoiceDueDate) MaxInvoiceDueDate
from InvoiceArchive iva
where iva.VendorID = v.VendorID
) iva