通过嵌套连接选择最高的序列号

2023-12-10

我想为每个客户 ID 获取最大序列号(最大序列号将根据最高银行帐户余额计算)。

该表有100000条记录。

Tables

客户端序列表 T1

ClID              SeqId     
1                 11         
1                 12         
1                 13         
1                 14         
1                 15         
2                 16         
2                 17         
2                 18         
2                 19         
3                 110         
3                 111         
3                 112         
3                 113         

SeqBranch表T2

SeqId    BalID  
11         1  
12         2  
13         3  
14         4  
15         5  
16         6  
17         7  
18         8  
19         9  
110         10  
111         11  
112         12  
113         13

平衡表t3

BalID Balance  
1     30000  
2     26789  
3     23456  
4     12345  
5     21234  
6     12456  
7     45632  
8     23456  
9     99999  
10    12345  
11    21234  
12    12456  
13    45632

结果将是

ClID              SeqID          Balance  
1                 1              30000  
2                 9              99999  
3                 4              45632

我已经尝试过这种方式,但对我不起作用

SELECT  RS.Investigationid,MAX(stt.sequenceid) 'SeqId', T.HighestBalance 'Balance' 
FROM    ClientSeqTable  T1, SeqBranchTable T2, branbaltable t3,  
                ( SELECT    t1.clid ,MAX(T3.Balance) 'HighestBalance'
                    FROM    ClientSeqTable  T1, SeqBranchTable T2, branbaltable t3,
                    WHERE   t1.seqid =  T2.seqID
                    AND     T2. balId= T3. balId
                    GROUP BY  RS.Investigationid,stt.SequenceId
                    ) T
WHERE   T2.balId =  T3.BalId
AND T1.SeqId = T2.SeqId
AND     T3.HighestBalance = T2.balance
AND     T1.clID = t.ClID
GROUP BY  T1.ClID

通过以上查询结果如下。

ClID            SeqNu          Bal    
1               1              30000    
1               2              30000  
1               3              30000  
1               4              30000  
1               5              30000  
2               3              99999    
2               4              99999    
2               1              99999    
2               9              99999    
3               2              45632  
3               5              45632  
3               3              45632  
3               4              45632

如果您能够使用 row_number 函数,那么应该可以工作:

select 
    *
from 
(
    select 
        t1.ClID, t1.SeqId, t3.Bal, 
        RowNumber = row_number() over (PARTITION BY t1.ClID order by t3.bal desc)
    from 
        ClientSeqTable t1
    inner join
        SeqBranchTable t2 on t2.SeqId = t1.SeqId
    inner join
        Balancetable t3 on t3.BalID = t2.BalID
) t
where
    t.RowNumber = 1

重要的一点是行号按客户端 ID 分区,然后按余额降序排列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过嵌套连接选择最高的序列号 的相关文章

  • SQL - 我需要将总值划分为另一个表中的多行

    假设我在 SQL Server 2008 中有以下表 学校桌 School Id Course Id Total Students 1 Acct101 150 1 Acct102 100 2 Acct101 110 2 Acct102 13
  • T-SQL Cross Join 获取缺失值

    这是我的问题的一个简单例子 我有一个创建报告的存储过程 DECLARE Report TABLE Product VARCHAR 10 Purchases MONEY default 0 DECLARE Range TABLE minP M
  • sql查询仅删除一个重复行

    我有一个表 其中有一些重复的行 我只想删除一个重复的行 例如 我有 9 个重复行 因此应仅删除一行并应显示剩余 8 行 example 日期调用调用持续时间时间戳 2012 06 19 10 22 45 000 165 218 155 1
  • 使用 IF..ELSE IF 控制 T-SQL SP 中的流程 - 还有其他方法吗?

    我需要将我的 T SQL 存储过程 MS SQL 2008 控制流分支到多个方向 CREATE PROCEDURE fooBar inputParam INT AS BEGIN IF inputParam 1 BEGIN END ELSE
  • 从长到宽 - SQL [重复]

    这个问题在这里已经有答案了 我有一张很长的桌子 例如 Date Person Number 2015 01 03 A 4 2015 01 04 A 2 2015 01 05 A 3 2015 01 03 B 5 2015 01 04 B 6
  • “for”SQL Server 附近的语法不正确

    我想向其中已有数据的现有表添加一个新列 该列应该不为空 因此我想设置一个默认值 但是当我这样做时 它会抛出以下异常 for 附近的语法不正确 ALTER TABLE Semester ADD SIDNew uniqueidentifier
  • 将查询结果即时导出到文件

    我需要将查询结果导出到 csv 文件并将该文件放在网络共享文件夹中 是否可以在存储过程中实现此目的 如果是 则会出现另一个限制 我可以在没有系统管理员权限的情况下实现此目的 也就是不使用 xp cmdshell BCP 实用程序吗 如果 2
  • 如何使用 REST API 导出 SSRS 2017 报告

    我已经设置了 SSRS 2017 我需要使用他们的新 REST API 导出 SSRS 报告 我一直在查看 API 规范here https app swaggerhub com apis microsoft rs SSRS 2 0但我在
  • 如何在SQL Server中创建SYS模式的表?

    可以在 SQL Server 2008 sys 架构中创建表吗 我知道可以将表标记为系统 但不能更改架构 有什么窍门吗 您无法将自己的对象添加到 sys 架构中 无法在 sys 架构中创建用户定义的对象 盖尔 埃里克森 MS SQL Ser
  • 存储过程 - 使用 NOT IN where 子句执行查询

    我有一个存储过程 Create PROCEDURE abc sRemovePreviouslySelectedWhereClause nvarchar max AS BEGIN SELECT FROM table WHERE nId NOT
  • SQL Server freetexttable 部分单词

    我第一次使用 SQL 自由文本搜索 我有点困惑为什么它会这样 我有一个联系人表 用户可以搜索并且我正在使用 SELECT Contacts Rank FROM FREETEXTTABLE Contacts O Roarty AS Conta
  • 从表中删除孤儿

    我正在尝试清理一张有很多孤立项目的桌子 我通过查找空值来检查是否与另一个表存在关系来解决此问题 DELETE FROM table1 LEFT JOIN table2 ON table1 ID table2 ID WHERE table2
  • 使用 Switch 的报告服务表达式

    我无法让这个表达式与报告服务一起使用 我必须使用 IF 和 ELSE IF 语句 感谢您的任何建议 Switch IsNothing Fields field date Value Fields set flag Value 1 Decli
  • 将大量实体插入 SQL Server 2012 [重复]

    这个问题在这里已经有答案了 我正在进行一个使用 Entity Framework 5 和 SQL Server 2012 的项目 我们需要一次插入大量行 100k 个实体的顺序 基本上 我们有一个物理程序 它输出大量二进制数据 然后我们需要
  • 如何在 SQL Server 中的特定字符后分割字符串并将该值更新到特定列

    我有包含数据的表格1 1 to 1 20在一列中 我想要值 1 到 20 即 前斜杠 之后的值更新到 SQL Server 中同一表中的其他列 Example 专栏有价值1 1 1 2 1 3 1 20新列值1 2 3 20 也就是说 我要
  • 如何在SSRS 2012中显示基于总金额的前10名

    我只需要显示前 10 名Class基于Total SUM Premium 柱子 我转到类代码属性组 gt 过滤器并按 SUM Net Written Premium 设置前 10 名 但它不起作用 我只需要显示前 10 名 而且总金额也应该
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将

随机推荐

  • UICollectionView 的可重用性问题

    我曾与UITableView但我从来没有用过UICollectionView在我的应用程序中 所以我想创建UICollectionView以编程方式 以下是我的代码 UICollectionViewFlowLayout layout UIC
  • 常见的 Linq / 标准查询操作符错误/错误步骤?

    对于没有函数式编程背景的程序员来说 有什么错误是需要避免的吗 人们容易犯的最大错误是误解 LINQ 查询的惰性和评估规则 查询是惰性的 在您迭代它们之前它们不会被执行 This does nothing No query executed
  • boost::unique_lock::timed_lock 的用法

    升压 定时锁 void wait int seconds boost this thread sleep boost posix time seconds seconds boost timed mutex mutex void threa
  • 为什么 gcov 报告使用良好的类的头文件覆盖率为 0%?

    我第一次尝试使用以下方法来测量测试覆盖率gcov 现在我已经过了最初的学习曲线 除了一个小障碍之外 一切似乎进展顺利 我希望这可以归结为我缺乏理解 所以我希望熟悉 gcov 的人能够解释发生了什么 问题是我有一个特定的头文件显示 0 覆盖率
  • Go 变量被覆盖(bug?)

    这里有点奇怪 我的问题是 人们运行我的代码会得到与我相同的结果吗 如果你这样做 这是我的代码的错误 我通常是一个Python程序员 还是golang中的错误 系统信息 Go 版本 1 1 2 Linux x64 fedora 19 代码的背
  • Java组合框摆动[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的表有两个字段 ProductID Primary Key ProductName duplicate values will be present 我已经脸红了productNam
  • 将字符串转换为 DateTime 对象

    我想将特定格式的字符串转换为DateTime 我的具体字符串格式是 dd mm yyyy 我无法进行任何字符串操作 这是我现在的代码 DateTime convertedDate DateTime Parse stringInput 看来你
  • 如何让固定位置的 div 随内容水平滚动?使用 jQuery

    我有一个带有以下 CSS 的 div scroll fixed scroll fixed position absolute top 210px scroll fixed fixed position fixed top 0 当 div 到
  • 如何循环遍历文件中的行块?

    我有一个如下所示的文本文件 其中的行块由空行分隔 ID 1 Name X FamilyN Y Age 20 ID 2 Name H FamilyN F Age 23 ID 3 Name S FamilyN Y Age 13 ID 4 Nam
  • 获取鼠标光标下的 RGB 值

    我正在尝试构建一个程序来检测鼠标光标下方的颜色 然后在屏幕上的窗口中显示颜色和 RGB 值 我对 Java 非常陌生 所以什么都不知道 在朋友的帮助下 我编写了两个代码 第一个获取缓冲图像的特定坐标的 RGB 值 另一个获取用户定义的 RG
  • jQuery animate 在小提琴中工作但在线不流畅

    我制作了一种带有三个扩展 div 的手风琴 a b c 在小提琴中 但是当我将其保存在本地并在浏览 器中打开它时 过渡不再平滑 点击后我特别注意到 b with a扩大了 我已包含引用 CSS 和 JavaScript 代码的 HTML 原
  • 了解 Powershell:示例 - 将 JSON 转换为 CSV

    我读过几篇文章 比如使用 PowerShell 将 JSON 转换为 CSV 关于使用 PowerShell 转换 CSV 我还了解到 在脚本中使用管道语法是一种相对较差的形式 它实际上是用于命令行的 并且随着时间的推移会给开发人员带来维护
  • 如何在MongoDB中设置缓冲区偏移范围,它不允许在BSON对象中上传超过16MB的文件?

    我的流程和代码 从表单数据上传图像并将图像的 BSON 字符串存储到数据库 以下是步骤和代码 从 multer upload 上传文件 从文件系统读取文件 fs 将图像内容字符串转换为base64字符串 将base64字符串转换为BSON字
  • 在 R 中使用线性回归填充 NA

    我有一个包含一个时间列和 2 个变量的数据 下面的示例 df lt structure list time c 15 16 17 18 19 20 21 22 23 24 25 26 var1 c 20 4 31 5 NA 53 7 64
  • LPARAM 和 WPARAM 的定义是什么?

    我知道我在这里很懒 我应该自己查找头文件 但是 LPARAM 和 WPARAM 参数的实际类型是什么 它们是指针还是四字节整数 我正在编写一些 C 互操作代码 并希望确保它可以在 x64 系统上运行 LPARAM是一个类型定义LONG PT
  • 使用 py2exe 打包 py 文件时出现“超出最大递归深度”

    几个月前 py2exe 在同一个 py 文件上运行得很好 但是当我今天再次尝试时 它失败了 报告了 运行时错误 超出了最大递归深度 结果我得到了一个空的 dist 文件夹 Py文件工作正常 只是无法打包 我猜py文件中导入的模块有问题 但我
  • WPF VS2013:查找资源字典时发生错误

    Team 我在 Visual Studio 2013 中有一个简单的 wpf 项目 结构如下所示 该错误所说的全部内容如标题 查找资源字典时发生错误 所示 我尝试了网上的很多建议 但已经失去耐心了 一切似乎都还好 任何对此有经验的人都可以提
  • v-for Loop 内的参考文献 vue v3.2.25 或更高版本

    我正在读vue 3 的文档我决定测试一下refs在我当地的开发环境中 我用的是vue版本3 2 31并根据设置我的项目vue官方指南 因此 为了测试组件中的 refs 我只需将代码复制并粘贴到this url那就是操场vue 网站 这意味着
  • 在 bash 中获取位置参数

    我有一个名为 foo 的 bash 脚本 其参数数量可变 第一个是必需的 即 foo a1 b2 b3 b4 我知道在 bash 中 1 会得到参数 a1 但是有没有办法得到所有其余的参数 或 似乎让我得到了所有参数 包括 a1 切片 ar
  • 通过嵌套连接选择最高的序列号

    我想为每个客户 ID 获取最大序列号 最大序列号将根据最高银行帐户余额计算 该表有100000条记录 Tables 客户端序列表 T1 ClID SeqId 1 11 1 12 1 13 1 14 1 15 2 16 2 17 2 18 2