SQL Server 2014 中具有多个条件的情况

2024-03-27

我有一个表“FinancialTrans”,其中有很多字段,但其中只有 3 个字段与我有关。

AcctID  TransTypeCode   DateOfTrans  Field 4  Field 5  Field 6....
123     TOLL            2016-06-06
123     TOLL            2016-06-02
123     TOLL            2016-04-28
123     PYMT            2016-03-11
123     TOLL            2015-12-22
123     TOLL            2015-12-22

我需要的:
当过去 2 年内没有 TOLL 或 PYMT 时,我需要打印一个 Flag。

所以用简单的逻辑来说:

(When TransTypeCode is 'TOLL' and the MAX(DateOfTrans) is more than 2 years ago)  AND  
(When TransTypeCode is 'PYMT' and the MAX(DateOfTrans) is more than 2 years ago)

所以到目前为止我的代码是:

select *,
(case when max(case when FT.TransTypeCode in ('TOLL', 'PYMT') 
                    then FT.DateOfTrans 
                    end) 
      over (partition by FT.Acctid) >= dateadd(year, -2, getdate())
      then 0 else 1
      end) as MyFlag

from #temp_TableA A
INNER JOIN FinancialTrans FT ON A.AccountId = FT.AcctId

但此代码会带来 FinancialTrans 表的所有其他字段,并将该帐号的每一行与前一个表连接起来。因此,每个帐号大约有 1200 个重复项。

问题:
1. 如何避免每个帐号重复 1200 个?
2.当满足上述两个条件时,如何获得一个给出标志的列。


Use GROUP BY,因此您会得到单行帐户,而不是row_number您可以在其中为每一行计算一些内容。

SELECT A.AcctID,
       MAX(case when FT.TransTypeCode in ('TOLL', 'PYMT') 
                 and FT.DateOfTrans >= dateadd(year, -2, getdate())
                then 1
                else 0
           end) as flag

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

SQL Server 2014 中具有多个条件的情况 的相关文章

  • SQL Server 2012:有条件地增加计数器用户 ROW_NUMBER()

    我正在尝试申请ROW NUMBER 根据特定条件增加计数器 我的数据如下所示 目标计数器是Prep column id DSR PrepIndicator Prep 1662835 1 1 1 1662835 14 2 2 1662835
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • 将 MSSQL 中用于 Web 制图的投影(Leaflet、Openlayer、OpenStreetMaps、GoogleAPI...)更改为 WSG48 或任何其他格式

    我在 MSSQL 服务器中有一些像这样的 WKT WKB 数据 并希望借助 leaflet Openlayer OpenStreetMaps 或 GoogleAPI 将它们显示在地图上 我的数据如下所示 POLYGON 1736946 09
  • 如何进行数据透视并计算列平均值

    我承认这是迄今为止我必须面对的最复杂的 SQL 语句之一 我在这件事上碰壁了 我希望有人能帮我一把 我在数据库中有这张表 Item ActiveTime sec DateTime 1 10 2013 06 03 17 34 22 gt Mo
  • 自动提取数据 - Oracle SQL Developer

    我通过 SQL Developer 连接到 Oracle 数据库 我想编写一个返回每月数据集的查询 然后将该数据提取到分隔文本文件中 我知道如何做到这一点就好了 我想知道是否有一种方法可以编写一个脚本来运行查询并在一年内逐月提取数据 这样我
  • 有没有办法设置 SQL Server 作业计划每 30 秒运行一次?

    当我尝试创建计划时 我可以选择的最短时间是 1 分钟 有没有办法将其减少到秒 这篇文章在这里SQL Server 作业调度 http www sqlservercentral com articles Administration sqls
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 在对象数组内的特定 JSON 值上创建索引

    假设我的表中有一个 varchar 列 其结构如下 Response DataArray Type Address Value 123 Fake St Type Name Value John Doe 我想在 DataArray 数组元素的
  • SQL Server - 将行连接到逗号分隔的列表中

    假设我有一个临时表 如下所示 Id Value 1 1 1 2 1 3 2 1 2 2 我希望我的桌子是这样的 Id ValueList 1 1 2 3 2 1 2 所以基本上我需要将我的值分组为逗号分隔的列表 我已经尝试过以下操作 SEL
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 没有为 1 个或多个必需参数给出值。更新SQL

    我正在编写一个程序 当用户在列表视图上选择记录时 该程序会更新密码或积分 我收到错误 没有为 1 个或多个必需参数给出值 我不知道如何纠正 我是否遗漏了一些明显的东西 Dim sql As String UPDATE Users SET P
  • 根据由另一列分组的不同列的最大值获取值[重复]

    这个问题在这里已经有答案了 我想根据由另一列分组的不同列的最大值来获取列的值 我有这张表 KEY NUM VAL A 1 AB B 1 CD B 2 EF C 2 GH C 3 HI D 1 JK D 3 LM 并想要这样的结果 KEY V
  • 何时在 mysql 中使用 Union [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于 Union 您会在什么现实情况下使用它 因为对我来说 对具有不同列用途 含义的两个表中的两个选择查询使用联合是没有意义的 例如
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • 更好地理解 SQL Server 中的架构

    就像标题一样 我还是一个SQLServer菜鸟 当我创建表 Mytable 时 数据库中显示 dbo Mytable 但有人能让我更好地理解模式吗 另外 在 Server 2008 TSQL 一书中 Itzik 说 在你的数据库中 表属于模
  • 时间序列数据的自连接

    我需要一些帮助来完成我认为应该是相当简单的自连接查询 只需要将两条记录中匹配的开始时间和结束时间合并为一条记录 假设我的表中有以下内容 Time Event 08 00 Start 09 00 Stop 10 30 Start 10 45
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM

随机推荐

  • 如何学习 SQL Server 索引调优? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在编写 tsql 查询时学习索引调优的最佳实用方法是什么 我有 VS2008 SQL Express 有
  • 如何以编程方式验证 Play 商店上的应用程序版本?

    我在 Play 商店中有一个应用程序 我想执行以下操作 当用户启动应用程序时 它应该验证 Play 商店中的应用程序版本是否与安装的版本相同 如果不是 我将显示一个对话框来警告这种情况 并提供重定向到 Play 商店进行更新的选项 我知道游
  • 接受用户输入

    我目前正在 Malbolge 中编写一款文字冒险类型游戏 谁能告诉我如何在 Malbolge 中接受用户输入 我能够将文本输出到屏幕上 但是 我似乎不知道如何接受输入 GHJUYGHJKLKUJHM MJ 6AG9F5D8V A8 gt 7
  • PHP 正则表达式中的 [\S\s]* 是什么意思?

    是什么意思 s S 在 PHP 的正则表达式中 做 s S 实际上匹配每个字符串相同 默认情况下 与新行不匹配 s S 是解决这个问题的一个技巧 这在 JavaScript 中很常见 但在 PHP 中你可以使用 s标记 to 以使点匹配所有
  • Kendo Ui 数据源添加功能无法正常工作

    我定义了一个 Kendo 数据源 如下所示 它正在填充 ListView 中的值 var datasourceAppList new kendo data DataSource transport create function optio
  • .NET Framework 中的“AssemblyTitle”属性

    实际用途是什么AssemblyTitle属性 MSDN 表示它指定了程序集的描述 并且程序集标题是一个可以包含空格的友好名称 Visual Studio 要求在项目的属性窗口中提供程序集名称以及默认命名空间 有一个AssemblyName属
  • 如何在SQLite中获取ROWID?

    考虑这个简单的表 tbl1 A first letter B second letter C third letter 第一列是letter第二列是desc 我可以毫无问题地执行此查询 select from tbl1 where lett
  • 从数组创建 mpf

    我正在尝试使用fsolve结合mpmath包裹 但是 我收到错误cannot create mpf from array mpf 1 0 dtype object 这是重现错误的最小示例 对于这个例子 技术上我不需要mpmath包 但我的实
  • 如何 rbind 与其列名称匹配的向量?

    rbind 在将向量绑定在一起时不检查列名 l list row1 c 10 20 row2 c 20 10 names l row1 c A B names l row2 c B A l row1 A B 10 20 row2 B A 2
  • 水豚与 :js => true 导致测试失败

    我对 Capybara 和 Rails 测试都很陌生 所以如果这是一个简单的答案 请原谅我 我有这个测试 it should be able to edit an assignment do visit dashboard path sel
  • 在 RabbitMQ 监听器中隐藏运行时异常

    在某些故意发生的情况下 我使用了一些异常来拒绝消息 但在控制台中显示了乍一看似乎不太正常的异常 如何在登录控制台 文件时隐藏该特定异常 我正在使用 spring boot 和默认记录器 public static class Undispa
  • 用于平滑开放 3D 网格边缘的算法

    我有一个 3D 网格 它代表一个具有一些粗糙边界的表面 我想对其进行平滑处理 我使用半边数据结构来存储几何图形 因此我可以轻松地迭代边界边 顶点和面 我还可以使用点积和叉积轻松确定给定的一对边是否是凸 凹的 平滑边缘的最佳方法是什么 使它们
  • MSBuild 使用错误版本的程序集来编译 RDLC 文件

    我正在使用 VS 2010 中的 reportviewer 控件来创建客户端报告 rdlc 在我的开发机器上一切正常 当我手动编译 通过 VS2010 并手动部署到没有安装开发工具的测试机器时 为了让测试机正常工作 无需安装 VS2010
  • 启动失败。未找到二进制文件。 Eclipse Helios 上的 CDT

    我在 Ubuntu 10 04 上使用 Eclipse Helios 并尝试在其上安装 CDT 插件 我从这里下载here http www eclipse org downloads download php file tools cdt
  • 换行 NSButton 标题

    有什么方法可以让 NSButton 标题在宽度比按钮宽度长时换行 而不是被剪裁 我正在尝试创建一个单选按钮 其中的文本可能很长并且有多行 我考虑让它工作的一种方法是使用 NSRadioButton 类型的 NSButton 但无法让多行文本
  • 合并 2 个视频文件时出现问题 [匹配规格后]

    基本上我得到了一个 mp4 和一个 flv 文件 我想连接它们 mp4 应该是简介 所以在问了一个之前关于此的问题 https stackoverflow com questions 34029123 combine 2 flv video
  • 捆绑包标识符与保留捆绑包标识符不同

    我正在尝试在 iTunes 上上传我的应用程序 为此 我创建了一个应用程序 ID 并保留了一个包标识符 在我的项目中 我更改了 info plist 文件中的包标识符 但是 当我尝试在 itunes 上上传我的应用程序时 它显示错误 捆绑包
  • 如何使模式弹出窗口随页面滚动其内容?

    我有一个模式弹出窗口 当它加载高于浏览器高度的内容时 我无法向下滚动以查看其余信息 相反 背景可以滚动 但弹出窗口不会 相反 我想让弹出窗口保持不变 当用户向上或向下滚动时 它会将弹出窗口保留在适当的位置 并让他们滚动到内容的底部 如果您在
  • 为 libcurl 添加自签名 SSL 证书

    我在我的 C 应用程序中使用 libcurl 与我设置的 HTTPS 服务器进行通信 我在该服务器上生成了一个自签名证书 我希望将其与curl 一起使用 我知道将 CURLOPT SSL VERIFYPEER 设置为 0 可以绕过 SSL
  • SQL Server 2014 中具有多个条件的情况

    我有一个表 FinancialTrans 其中有很多字段 但其中只有 3 个字段与我有关 AcctID TransTypeCode DateOfTrans Field 4 Field 5 Field 6 123 TOLL 2016 06 0