select
VendorID,
VendorName,
VendorCity,
VendorState,
VendorPhone,
concat(VendorContactFName, ' ',VendorContactFName) AS VendorContactFullName,
max(InvoiceDueDate)
from
Vendors v
inner join
InvoiceArchive IVA on v.VendorID = IVA.VendorID
where
VendorCity in ('California', 'Arizona', 'Nevada');
您似乎正在寻找aggregete查询。这意味着您需要在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
请注意,在此查询中,所有列名称均与它们所属的表一起qualified。
您可以通过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