0
我正在使用Microsoft Access。我的要求是,用戶將給出任何百分比值,我必須找到構成'Value
'列百分比的ID號碼。對於例如在下面的DataSet中(它是按值列的降序排序的,也是必需的),所有值的總和爲'8409131'。選擇記錄數,直到總和小於'n' - 訪問SQL
ID NAME VALUE
1000000090 A 2295175
1000000974 B 1942753
1000015555 C 1887965
1000004864 D 1310400
1000015557 E 972838
如果我輸入75%,則該值爲65170765.25,所以我需要返回所有構成「65170765」,小於或等於的ID。所以在這種情況下,下面是小於65170765的值的總和。
ID NAME VALUE
1000000090 A 2295175
1000000974 B 1942753
1000015555 C 1887965
這是否可以實現我在Access SQL中的要求?
我的計劃是讓一個正在運行的總列找到前兩行的總和,然後將該值與下一行的總和。但在Access中,我無法弄清楚如何在選擇查詢中創建增量行來實現此目的。
查詢我想:
SELECT T1.ID, T1.NAME, T1.VALUE,(T1.VALUE + T2.VALUE)
FROM (
SELECT ID , RUN_MANAGER.NAME AS NAME, RUN_MANAGER.REPORTING_PERIOD, SUM(VALUE) As VALUE
FROM DATA
INNER JOIN RUN_MANAGER
ON DATA.RUN_NUMBER=RUN_MANAGER.RUN_NUMBER
WHERE RUN_MANAGER.NAME='A'
GROUP BY ID,RUN_MANAGER.NAME
ORDER BY SUM(VALUE) DESC) AS T1
INNER JOIN (
SELECT ID , RUN_MANAGER.NAME AS NAME, RUN_MANAGER.REPORTING_PERIOD, SUM(VALUE) As VALUE
FROM DATA
INNER JOIN RUN_MANAGER
ON DATA.RUN_NUMBER=RUN_MANAGER.RUN_NUMBER
WHERE RUN_MANAGER.NAME='A'
GROUP BY ID,RUN_MANAGER.NAME
ORDER BY SUM(VALUE) DESC) AS T2
ON T1.ID=T2.ID+1
這不是一個重複的問題。問題是,這個問題是基於Access的SQL,我也沒有任何遞增的升序行。
如果你沒有任何增量升行,你將如何確定行的順序?或者你要求隨機選擇? – Gustav
@Gustav我不得不添加序列行,但在訪問中,我無法找出在select查詢中添加連續行。 – RGR
但是,如果沒有進行排序,您無法在查詢中添加序列號。如果不能定義排序,則可以使用隨機序列。 – Gustav