首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sql选择top查询

问Sql选择top查询
EN

Stack Overflow用户
提问于 2014-11-12 06:19:48
回答 1查看 332关注 0票数 0

大家好,我有以下查询:

代码语言:javascript
复制
   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) 

第1行CommitAmt值: 1500

第二行CommitAmt值: 500

如果选择CommitmentLog.CommitAmt的前1和,则返回值为2000,而不是1500。

如果选择CommitmentLog.CommitAmt的前2和,返回值为2000,这是正确的。

如果我选择前1,那么和(CommitmentLog.CommitAmt)它应该返回1500和 如果我选择前2,那么sum(CommitmentLog.CommitAmt)应该返回1500 + 500 = 2000

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-12 06:36:14

你想把你的结果集的顶部N和起来吗?尝尝这个

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26880549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档