2017-09-28 35 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!