GROUP BY / SELECT DISTINCT问题

时间:2018-03-08 13:33:41

标签: sql vba ms-access

我在本网站和其他网站上经历了数十个问题,但在我的代码中添加GROUP BY时仍然遇到问题。一个接近,但不确定我完全理解它: SQL/mysql - Select distinct/UNIQUE but return all columns?

我正在开发一个程序来跟踪发货订单​​的跟踪号码,但是每个销售订单只需列出一次,因为我需要为每个订单分配一个状态。 PackageReferenceNo1包含销售订单编号,但每个订单只需要一个跟踪编号。以下代码提取所有跟踪号及其销售订单。我的想法是,如果我可以SELECT DISTINCTGROUP 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并收到汇总错误。

任何人都可以建议正确的方法继续进行,为什么?我更愿意理解,而不仅仅是接受解决方案。

0 个答案:

没有答案