我在本网站和其他网站上经历了数十个问题,但在我的代码中添加GROUP BY
时仍然遇到问题。一个接近,但不确定我完全理解它:
SQL/mysql - Select distinct/UNIQUE but return all columns?
我正在开发一个程序来跟踪发货订单的跟踪号码,但是每个销售订单只需列出一次,因为我需要为每个订单分配一个状态。 PackageReferenceNo1包含销售订单编号,但每个订单只需要一个跟踪编号。以下代码提取所有跟踪号及其销售订单。我的想法是,如果我可以SELECT DISTINCT
或GROUP BY
,我可以解决这个问题,但对任何一个选项都没有任何好运。
我的工作代码是:
SELECT tblImportUPS.ManifestDate,
tblImportUPS.TrackingNumber,
tblImportUPS.PackageReferenceNo1,
tblImportUPS.PackageReferenceNo2,
tblImportUPS.STATUS,
tblTrackingLinks.Notes,
tblImportUPS.ShipToName,
tblTrackingLinks.PGId,
tblTrackingLinks.BBReleased,
tblTrackingLinks.BBReleaseDate,
tblTrackingLinks.SRFNumber,
tblImportUPS.ShipToCity,
tblImportUPS.[ShipToState/Province],
tblImportUPS.ShipToCountry,
tblImportUPS.ShipperName,
tblImportUPS.NumberofPieces,
tblImportUPS.Weight,
tblImportUPS.ScheduledDelivery,
tblImportUPS.DateDelivered
FROM tblTrackingLinks
INNER JOIN tblImportUPS ON (tblTrackingLinks.TrackingNumber = tblImportUPS.TrackingNumber)
AND (tblTrackingLinks.TrackingNumber = tblImportUPS.TrackingNumber)
WHERE (((tblImportUPS.PackageReferenceNo1) LIKE "*56*")
AND ((tblImportUPS.STATUS) <> "Void"))
ORDER BY tblImportUPS.ManifestDate DESC;
这样可以正常工作,但会为每个订单重复多个跟踪号码。我尝试在GROUP BY tblImportUPS.PackageReferenceNo1
行之前添加ORDER BY
并收到汇总错误。
任何人都可以建议正确的方法继续进行,为什么?我更愿意理解,而不仅仅是接受解决方案。