我有簡單的表:選擇帶有字段總和的所有項目在規定的範圍內
file_size file_id file_time
1 1 19
2 2 20
3 3 21
4 4 22
5 5 23
我想找到用更少的file_time所有項目都有FILE_SIZE在預定的範圍之這樣的項目。 我寫一個查詢:
SELECT * FROM test_table AS D0 WHERE
(SELECT TOTAL(file_size) FROM test_table AS D1 WHERE
D1.file_time <= D0.file_time ORDER BY file_id)
BETWEEN 1 AND 9
這個查詢得到正確的結果:
1 1 19
2 2 20
3 3 21
但這查詢,如果需要的物品不起作用具有相同file_time領域:
file_size file_id file_time
1 1 20
2 2 20
3 3 20
4 4 20
5 5 20
期望結果這個數據是:
1 1 20
2 2 20
3 3 20
的file_id的領域是獨一無二的。 我的SQL查詢有什麼問題?
代碼來創建測試表:
CREATE TABLE test_table (file_size INT, file_id INT, file_time INT)
INSERT INTO test_table VALUES(1,1,20)
INSERT INTO test_table VALUES(2,2,20)
INSERT INTO test_table VALUES(3,3,20)
INSERT INTO test_table VALUES(4,4,20)
INSERT INTO test_table VALUES(5,5,20)
什麼是您預期的結果?我不清楚。 – 2011-12-28 14:47:27
找到所有在指定範圍FILE_SIZE的總和老(由file_time)項目。我的原始查詢是確定的,而file_time是唯一的。 – user1119412 2011-12-28 17:05:46
它對我來說工作得很好,就像你想要的那樣。 – 2011-12-28 19:01:05