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