我有一個包含'contracts'的表,使用contractId作爲主鍵。 在另一張表中,我有與這些合同有關的價格(FK contractId)。 我之前必須計算按合同分組的價格之間的價格差異(回報),並且總是在特定的日期期間。所以我只是在利息期間提取每日價格,並將其與前一天的價格進行比較。這並不難。只從第n行檢索sql數據
現在我需要再次從相同的數據計算回報,但總是跳過與數量(n)合約相關的價格。 因此對於n = 1我只跳過一個合約。對於n = 2,我需要跳過2個合約... 對於每個合約,我需要再次計算兩個價格按日期的回報,但是一旦我完成了讓我們說contractId = 1,我需要跳過與contractId = 2,並重新開始之日起計算回報,我停止與合同ID = 3 列表中的合同計算的回報正在尋找這樣的合同:
ContractId ContractCode
100001 NAM0899
100002 NAM0999
100003 NAM1099
100004 NAM1199
100005 NAM1299
100006 NAM0100
100007 NAM0200
100008 NAM0300
100009 NAM0400
100010 NAM0500
所以對於N = 1
,我d需要找到與ContractIds相關的價格:
100001, 100003, 100005, 100007
N = 2: 100001, 100004, 100007, 100010...
N = 3: 100001, 100005, 100009, 100013...
我試圖使用鉛和偏移但我無法找到正確跳過合同並按照需要將相關合同鏈接起來的方法。 我錯過了什麼? 在此先感謝!
你可以指定一個行號,只能從表採取ROWNUMBER%n行('WHERE ROWNUMBER%(N + 1)= 1 ''),或者只是'WHERE(contractid - 100000)%(n + 1)= 1' – ZLK