2013-07-16 121 views
2

这是我第一次接触SQL Server,字面意思是I have no idea what I'm doing
直到今天我只使用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.RoutingCodelocations.code行。
我的意思是像在MySQL中。如果我有相同的routingCode和相同的code 20条目,它会返回给我只有一行。那么在这里有什么办法可以做,或者我应该尝试一下DISTINCT?

+0

的语法,一些领域没有在聚合函数设置相同的,是的,但我总是得到一个错误。 –

回答

2

尝试这样的事情 -

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 
+0

谢谢!这是方式,但我想知道为什么会发生这种情况?我从来没有在mysql中遇到这样的事情。 –

+2

不客气@David White。有时查询逻辑在“SQL Server”和“MySQL”之间有所不同。您可以在'MSDN'中找到所有提示。 – Devart