2017-09-28 34 views
2

我一直在試圖獲得每個ean(id)的最後一行,因爲它有幾個TimeStamps(tmh),但我無法在MSQuery上獲得它與ODBC conexions ...有人建議?MSQuery如何內部連接2個表與別名(excel 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分組,我不是把TMH的平等ON參數:

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!