MSQuery如何内部连接2个表的同盟(excel odbc)

我一直在试图得到每个ean(id)的最后一行,因为它有几个TimeStamps(tmh),但是我不能在MSQuery上用ODBC conexions得到它…有人build议?

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 

先谢谢你!

用下面的查询,你应该得到

 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 

我可以用一个简单的方法解决它,我没有按照第二个表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 

我认为这或多或less是@Stanislovas的意思,但他简化得很好

Thnks!