-1
我試過以下。查詢正在工作,但按預期方式返回更多行。如何代表最大日期加入兩個表格
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。
請解釋或顯示更多細節,當你說出類似「比預期更多的行」。準確地說你期望什麼?您可以用文字說明它,但是通過展示您期望的例子通常更有用。 –
也許TOP N嵌套查詢將有所幫助。查看http://allenbrowne.com/subquery-01.html#TopN – June7
你的問題很可能是你只加入一個非唯一值的表:STORE。任何聯接的默認行爲是從每個表中生成行的笛卡爾乘積。換句話說,如果您沒有定義唯一條件,查詢將返回滿足條件的所有表的所有可能組合。例如,如果每個表中最多有3行(樣本數據中爲13-03-2017),則查詢將與STORE 574匹配,但會返回3 x 3 = 9行。您需要決定還需要其他條件才能返回您期望的有限結果集。 –