[英]Sql select top query
大家好,我有以下查詢:
SELECT TOP(1) CommitmentLog.CommitAmt
FROM leveldetails
INNER JOIN CommitmentLog
ON leveldetails.App_ID = CommitmentLog.app_id
AND leveldetails.Intro_ID = '999'
AND leveldetails.Side = 'right'
AND CommitmentLog.flag != '1'
AND CommitmentLog.CommitNo NOT IN (SELECT commit_no
FROM binary_bal
WHERE Intro_ID = '999'
AND Side = 'right'
AND llevel BETWEEN 1 AND 100000)
第一行CommitAmt值:1500
第二行CommitAmt值:500
如果我選擇CommitmentLog.CommitAmt的前1個總和,則返回值為2000而不是1500
如果我選擇CommitmentLog.CommitAmt的前2個總和,則返回正確的返回值2000
如果我選擇前1,則sum(CommitmentLog.CommitAmt)應該返回1500,
如果我選擇前2個,則sum(CommitmentLog.CommitAmt)應該返回1500 + 500 = 2000
您想對結果集的前N個求和? 嘗試這個
SELECT SUM(t1.CommitAmt) from (SELECT TOP(1) CommitmentLog.CommitAmt
FROM leveldetails
INNER JOIN CommitmentLog
ON leveldetails.App_ID = CommitmentLog.app_id
AND leveldetails.Intro_ID = '999'
AND leveldetails.Side = 'right'
AND CommitmentLog.flag != '1'
AND CommitmentLog.CommitNo NOT IN (SELECT commit_no
FROM binary_bal
WHERE Intro_ID = '999'
AND Side = 'right'
AND llevel BETWEEN 1 AND 100000)
) AS t1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.