我试过以下。查询正在运行,但返回的行数与预期不同。
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。
答案 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