这是我第一次接触 SQL Server,实际上我不知道自己在做什么
。
直到今天我只使用过 MySQL,但是让我们切入正题吧。
我有一个包含联接的查询。
SELECT locations.locationId, locations.code, locations.description,
machines.RoutingCode, machines.FaNo, machines.nameBg
FROM scanlog
LEFT JOIN locations ON locations.Barcode = scanlog.LineBarcode
LEFT JOIN machines ON machines.barcode = scanlog.MachineBarcode
问题:
我想对 machines.RoutingCode
和 locations.code
上的行进行分组。
我的意思是像MySQL一样。如果我有 20 个具有相同 routingCode
和相同 code
的条目,它只会返回给我一行。那么这里有什么方法可以做到这一点,或者我应该尝试使用 DISTINCT 吗?
最佳答案
尝试这样的事情 -
SELECT
locationId = MAX(l.locationId)
, l.Code
, [description] = MAX(l.[description])
, m.RoutingCode
, FaNo = MAX(m.FaNo)
, nameBg = MAX(m.nameBg)
FROM dbo.scanlog s
LEFT JOIN dbo.locations l ON l.BarCode = s.LineBarcode
LEFT JOIN dbo.machines m ON m.BarCode = s.MachineBarcode
GROUP BY
l.Code
, m.RoutingCode
关于sql - 按聚合分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670597/