如何代表Max date加入两个表

时间:2017-09-11 22:50:47

标签: sql ms-access

我试过以下。查询正在运行,但返回的行数与预期不同。

  SELECT x,y,z FROM 
    (SELECT (t1.HOUR*4) + INT (t1.MINUTS/15 ) +1 AS x,t1.AMOUNT as y, t1.DATE,t2.AMOUNT AS z FROM table1 t1 
    INNER JOIN 
    (SELECT * FROM table2 WHERE DATE=(SELECT MAX(DATE) FROM table2 ))AS t2
    ON t1.STORE=t2.STORE
    WHERE t1.DATE = (SELECT MAX(DATE) FROM table1 )) 

样本数据:=

STORE   DATE    DAY_OF_WK   HOUR    MINUTS  AMOUNT
574     13-03-2017  2         0      0       0.00
574     13-03-2017  2         0      15      0.00
574     12-03-2017  2         0      30      0.00
574     11-03-2017  2         0      45      0.00
574     11-03-2017  2         1      0       0.00
574     13-03-2017  2         1      15      0.00

两个表都有相同的数据,但在数量列上有不同的业务逻辑。

我需要的是从两个表中获取最大日期的金额和时间ID。

1 个答案:

答案 0 :(得分:0)

解决了以下查询=>

SELECT T1.id as x,y,z from 
(SELECT (HC.HOUR * 4) + INT (HC.MINUTS/15 ) + 1 AS id, AMOUNT AS y, DATE FROM table1 HC WHERE DATE = (SELECT MAX(DATE) FROM table1))T1
LEFT JOIN
(SELECT (HS.HOUR * 4) + INT (HS.MINUTS/15 ) + 1 AS id, AMOUNT as z, DATE FROM table2 HS WHERE DATE=(SELECT MAX(DATE) FROM table2 ))t2 ON T1.id=T2.id