我想檢索具有MAX(col)的表中的行,但如果col中的值具有相同的數據,則MAX(col)返回多行。 我有2個表如下:Android SQLite MAX函數問題
**Table1**
row_id INTEGER (Primary key auto incremented),
name TEXT
**Table2**
row_id INTEGER (Primary key auto incremented),
ref_id INTEGER (Foreign key of Table1(row_id)),
date_in_long TEXT,
data TEXT
以下查詢我表演獲得具有MAX(date_in_long)行,期待一個最新進入行。
SELECT DISTINCT a.name, b.row_id, b.ref_id, b.date_in_long, b.data
FROM Table1 a, Table2 b
WHERE a.row_id=b.ref_id
AND b.date_in_long =
(SELECT MAX(c.date_in_long)
FROM Table2 c
WHERE c.ref_id=a.row_id
)
如果date_in_long對ref_id具有不同的值,但輸出結果是完美的,但它返回多行的值是相同的。 實施例
表1: ROW_ID名 1阿帕娜
2 USER1 3 XYZ
表2: ROW_ID REF_ID date_in_long數據 1 1 98 DATA1爲阿帕娜 2 1 100 DATA2爲阿帕娜 3 1 100 data3 for aparna 4 2 200 user1的data1 5 2 300 user1的data2 6 3 100 DATA1爲XYZ
以上查詢的結果:
row_id ref_id name date_in_long data
2 1 aparna 100 data2 for aparna
3 1 aparna 100 data3 for aparna
5 2 user1 300 data2 for user1
6 3 XYZ 100 data1 for XYZ
預期的結果應該是:
row_id ref_id name date_in_long data
3 1 aparna 100 data3 for aparna
5 2 user1 300 data3 for user1
6 3 XYZ 100 data1 for XYZ
請讓我知道如何問題上面的查詢。
添加以下條件(如由與亞力山大此信息提供溶液),不包括某些行添加上述ROW_ID條件之後
AND
b.row_id = (Select MAX(c.row_id) from Table2 c where c.ref_id = b.ref_id)
輸出:
row_id ref_id name date_in_long data
3 1 aparna 100 data3 for aparna
6 3 XYZ 100 data1 for XYZ
沒有行爲USER1。
請讓我知道如何解決這個查詢。
謝謝 問候, 阿帕娜
感謝亞歷山大它的工作,但幾行沒有返回。 – Aparna 2012-08-08 04:54:26
使用上述條件輸出編輯問題。 – Aparna 2012-08-08 06:26:21