如何从查询中获取结果,其中第一列在更改之前不会重复其值

2023-12-06

我有一个仅返回几行的查询,但我需要以这样的方式对结果进行分组,使得前两列在其值发生变化之前不会重复。

让我告诉你我的意思,这样会更容易。
这是查询:

select isnull(d.FirstName, '') + ' ' + isnull(d.LastName, '') as Chauffeur,
       t.securysatnr,
       convert(date, p.PlanningDate) as Datum,
       p.StartTime as LaadUur,
       r.LotNr,
       isnull(pFrom.City, '') + ' - ' + isnull(pTo.City, '') as RitInfo 
from   tblPlanning p
  left outer join vwRit r on p.RitID = r.RitID
  left outer join tblPlace pFrom on r.VertrekID = pFrom.PlaceID
  left outer join tblPlace pTo on r.BestemmingID = pTo.PlaceID
  inner join tblDriver d on p.DriverID = d.DriverID
  inner join tblTruck t on p.TruckID = t.TruckID
where  convert(date, p.PlanningDate) >= convert(date, getdate())
order by Chauffeur, convert(date, p.PlanningDate), p.StartTime

这是返回的结果集:

Chauffeur   securysatnr     Datum       LaadUur  LotNr    RitInfo   
---------   -----------     -----       -------  -----    -------   
Aloyzyas    JBB017          2017-07-12    13     RT-0181  Creutzwald (Tramosa) - Koln TS    
Aloyzyas    JBB017          2017-07-12    20     EMPTY    Koln TS - Neuss (ATN) 
Aloyzyas    JBB017          2017-07-13     6     2094935  Neuss (ATN) - Zulpich WWL 
Andrii      HT5485 FB-CA    2017-07-12    14     EMPTY    Zulpich WWL - Born (Nedcar)   
Andrii      HT5485 FB-CA    2017-07-12    16     1709426  Born (Nedcar) - Zeebrugge Hanze terminal 521-525  
Andrii      HT5485 FB-CA    2017-07-13     8     0006620  Zeebrugge ICO gate 502 - Niederkorn (Collé)   
Darius      HPV472          2017-07-12    17     0006624  Zeebrugge ICO gate 502 - Antwerpen 1333   
and so on...

这就是我想要得到的结果:

Chauffeur   securysatnr    Datum      LaadUur   LotNr     RitInfo   
---------   -----------    -----      -------   -----     -------   
Aloyzyas    JBB017          2017-07-12    13    RT-0181   Creutzwald (Tramosa) - Koln TS    
                            2017-07-12    20    EMPTY     Koln TS - Neuss (ATN) 
                            2017-07-13     6    2094935   Neuss (ATN) - Zulpich WWL 
Andrii      HT5485 FB-CA    2017-07-12    14    EMPTY     Zulpich WWL - Born (Nedcar)   
                            2017-07-12    16    1709426   Born (Nedcar) - Zeebrugge Hanze terminal 521-525  
                            2017-07-13     8    0006620   Zeebrugge ICO gate 502 - Niederkorn (Collé)   
Darius      HPV472          2017-07-12    17    0006624   Zeebrugge ICO gate 502 - Antwerpen 1333   
and so on...

我希望这能明确我想要的结果。
这在 sql-server 中可能吗?如果是,那么我当然该怎么做。

EDIT:
一种选择是在存储过程中执行此操作,然后循环记录并填充并返回临时表。 但我希望有一个没有存储过程的解决方案。

EDIT:
我知道这通常应该在表示层中完成,但在这种情况下很难。它是一种从另一个表接收要执行的查询的表单,因此它不知道将接收哪些结果集。因此,在这种情况下不可能在表示层上执行此操作,除非有人知道在这种情况下如何在此处执行此操作。


Example

Select Chauffeur   = case when Chauffeur=lag(Chauffeur,1)     over (partition by Chauffeur               Order by RN) then '' else Chauffeur end
      ,securysatnr = case when securysatnr=lag(securysatnr,1) over (partition by Chauffeur,securysatnr Order by RN) then '' else securysatnr end
      ,Datum
      ,LaadUur
      ,LotNr
      ,RitInfo   
 from (
        Select *,RN=Row_Number() over (Order By Chauffeur,securysatnr,Datum)
         From (
                -- Your Complicated Query Goes Here
              ) A1
      ) A
 Order By RN

Returns

enter image description here

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

如何从查询中获取结果,其中第一列在更改之前不会重复其值 的相关文章

随机推荐

  • 在java中计算.txt文件中的单词频率

    我正在做一项计算机科学作业 最后 程序将确定文件是用英语还是法语编写的 现在 我正在努力研究计算 txt 文件中出现的单词频率的方法 我在各自的文件夹中拥有一组英语和法语文本文件 标记为 1 20 该方法要求一个目录 在本例中为 docs
  • Django 分页 - 如何重定向回 ListView 和页码

    In a ListView我使用分页器渲染一个表格paginate by 5 在每一行中我都有一个按钮可以打开UpdateView 成功更新后我又回到了我的状态ListView但总是在第一页 我怎样才能改变success url这样我就回到
  • Android:当我尝试安装签名的应用程序时,它显示“应用程序未安装”

    当我尝试安装签名的 apk 文件时 应用程序安装程序显示 应用程序未安装 我制作的每个应用程序都会发生这种情况 即使我创建一个全新的密钥库 或者将构建模式设置为调试 虽然如果我通过 Android Studio 安装它确实可以工作 但如果我
  • SignalR 用于跟踪在线用户和聊天

    我们正在开发一个社交网络应用程序 并将实现一些新功能 1 追踪在线用户 2 聊天 一对一聊天 后来群聊 我研究过 SingalR 它看起来很有前途 我们正在使用 ASP NET MVC 3 并正在考虑使用集线器 我首先的问题是 Signal
  • 查找表中与特定数字最接近的数字

    我有一个数字表 我想找到与特定数字最接近的数字并更改其颜色 朋友们 这怎么办 function Cf td each function let v s1 val if this innerHTML
  • 在 JavaScript 中获取对象变量名称

    我正在创建 JavaScript 代码 并且遇到了一种情况 我想在对象方法中读取对象名称 字符串 我想要实现的示例代码如下所示 Define my object var TestObject function return getObjec
  • 未捕获的类型错误:对象 # 没有方法“addEventListener”

    我在一个相对简单的 HTML 文件中有一个按钮元素 我正在尝试添加事件侦听器 但不断收到错误 我不知道为什么 Uncaught TypeError Object
  • 如何在空行上分解字符串? [复制]

    这个问题在这里已经有答案了 我正在努力寻找解决方案 如何分解下面的数据样本数据 2013 Fondermann LP Hold your Ground LP 2012 Zwo 80 MiniLP Sassy Society Demo Pog
  • Spring JPA如何确保数据写入持久存储

    我试图扩展这个例子 https github com scratches jpa method security sample通过在控制器中添加一个方法来 注册 其中新用户会动态添加到存储库中 默认的现有用户集添加到 import sql
  • Java 的 HTML/XML 解析器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 哪些 HTML 解析器具有
  • 如何使用OpenCv叠加图像?

    如何叠加两个图像 本质上 我有一个没有 Alpha 通道的背景 以及一张或多张具有 Alpha 通道的图像 需要彼此叠加 我尝试了以下代码 但叠加结果很糟糕 create our out image Mat merged info widt
  • 南特邮件问题

    任何人都可以建议我如何配置通过 nant 发送邮件 我什至浏览了该链接 但没有成功 感谢致敬 麦迪 您将使用类似这样的东西
  • 类型“...”没有定义构造函数

    我注意到编译器错误类型 没有定义构造函数当我错误地尝试实例化特定类时生成 这让我想知道我将如何编写自己的类 当有人试图实例化它时 该类会沉淀此消息 那么下面的代码 我需要做什么MyClass namespace MyNamespace cl
  • 如何使用 JS 更改 @keyframes? [复制]

    这个问题在这里已经有答案了 我在用着 progressBar background color 247BA0 width 150px padding 10px border radius 5px animation progressBar
  • Oracle 中的重音和大小写不敏感 COLLATE 等效项

    在 Microsoft SQL Server 中 如果我想在区分大小写的数据库中不区分大小写地搜索 我可以运行以下 SQL SELECT FROM MyTable WHERE MyField BobDillon COLLATE Latin1
  • 空手道 - 无法循环运行动态场景大纲

    这是我的功能文件 它只加载 json 文件并想要迭代相同的文件 Background def kittens read json test json Scenario Outline cat name
  • 类型错误:传递给 Series.__format__ 的格式字符串不受支持

    我试图在我的仪表卡上添加千位分隔符 但我所有的努力都是徒劳的 发现这个解决方案更准确 但它给了我一个错误 类型错误 传递给系列的格式字符串不受支持 format app callback Output sls children Output
  • 在 RDLC 中将表包装为多列

    需要为 RDLC 报告生成动态列表 名称 页码 但我需要将它包装成这样的三列 有什么解决办法吗 我会建立一个这样的矩阵 行组基于表达式 Ceiling RowNumber Nothing 3 列组基于表达式 RowNumber Nothin
  • 如何在 Visual Studio Code 中打开交互式 shell/REPL?

    我正在使用 Visual Studio Code 并且我想要一个可以在其中运行单个 Python 指令的 REPL 我发现了一些一年前的微软文档上面显示选择 视图 gt 其他 Windows gt 交互式 菜单项 但我的 VS Code 版
  • 如何从查询中获取结果,其中第一列在更改之前不会重复其值

    我有一个仅返回几行的查询 但我需要以这样的方式对结果进行分组 使得前两列在其值发生变化之前不会重复 让我告诉你我的意思 这样会更容易 这是查询 select isnull d FirstName isnull d LastName as C