2017-09-28 2 views
2

그것은 여러 타임 스탬프 (tmh)가 있기 때문에 각 ean (id)의 마지막 행을 얻으려고했지만 MSQuery에서 가져올 수 없습니다. ODBC 연결과 ... 일부 제안?MSQuery 내부에 앨리어스 (엑셀 odbc)와 테이블을 결합

SELECT TMH, PESO, ALTO, ANCHO, LARGO, EAN FROM 

(SELECT TMH219 as TMH, PES219 AS PESO, ALT219 AS ALTO, ANC219 AS ANCHO, LAR219 AS LARGO, EAN219 AS EAN FROM SGAVDL.SGA21900) T1 

INNER JOIN (SELECT EAN219, MAX(TMH219) FROM SGAVDL.SGA21900) T2 

ON T1.EAN219 = T2.EAN219 

GROUP BY TMH, PESO, ALTO, ANCHO, LARGO, EAN 

미리 감사드립니다. 쿼리 아래로

+0

'select max (timestamp)'? – WhatsThePoint

답변

1

당신이

SELECT T1.TMH219 as TMH, PES219 AS PESO, ALT219 AS ALTO, ANC219 AS ANCHO, LAR219 AS LARGO, T1.EAN219 AS EAN FROM 
SGAVDL.SGA21900 T1 INNER JOIN (SELECT MAX(TMH219) TMH219 FROM SGAVDL.SGA21900) T2 
ON T1.TMH219=T2.TMH219 
1

내가 쉬운 방법으로 그것을 해결할 수 얻어야한다, 나는 두 번째 테이블 T2로 그룹화 않네, 그리고 난 ON 매개 변수에 TMH의 평등을 넣어 않네 :

SELECT T2.MTMH, T1.PESO, T1.ALTO, T1.ANCHO, T1.LARGO, T1.EAN FROM 
(SELECT TMH219 as TMH, PES219 AS PESO, ALT219 AS ALTO, ANC219 AS ANCHO, LAR219 AS LARGO, EAN219 AS EAN FROM SGAVDL.SGA21900) T1 
RIGHT JOIN 
    (SELECT EAN219, MAX(TMH219) AS MTMH FROM SGAVDL.SGA21900 
     WHERE DATE(TMH219) = DATE(CURRENT_DATE) GROUP BY EAN219) T2 
ON T1.EAN = T2.EAN219 and t1.TMH = T2.MTMH 
GROUP BY EAN, MTMH, PESO, ALTO, ANCHO, LARGO 

나는 그것이 더 많거나 적은 수단을 @Stanislovas 무엇을 생각하지만, 그는

Thnks 아주 잘 단순화!