2013-07-16 124 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