【问题标题】:Combine result of same user into one result将同一用户的结果合并为一个结果
【发布时间】:2021-03-24 20:24:55
【问题描述】:

我尝试结合我的结果,如果“txtApplName”和“LeaveTypeDesc”相同,则总天数应添加并在加上“Totaldays”之后显示。

例如,在图像记录号 6 和 7 中应合并结果并添加“txtApplTotalDays”。我被困在这里。顺便说一句,我使用的是 SQL Server 2014。

select txtApplName, type.LeaveTypeDesc, department.DeptName, txtManagerName, final.txtApplTotalDays, final.txtApplLeaveStartDate, final.txtApplLeaveEndDate
from [dbo].[EN_TBL_FINAL_FORM] final 
INNER JOIN EN_TBL_MAST_DEPARTMENT department on final.lstApplDepartment = department.DeptID
INNER JOIN EN_TBL_MAST_LEAVETYPE type on final.lstApplLeaveType =type.LeaveTypeID 
where final.txtApplLeaveStartDate >= 'GETDATE()-10' and final.txtApplLeaveEndDate <= 'GETDATE()'

Sample Data:

txtApplName  LeaveTypeDesc     DeptName    txtManagerName    txtApplTotalDays
                     
Ng            Hospitalization  Development    PH               2.0
Aqila         Maternity Leave    Human        ELE              1.0
Sharah        Annual Leave      Human         ELE              1.0
Sharah        Annual Leave      Human         ELE              1.0
Aqilah        Annual Leave      Human         ELE              1.0


Expected Data:

txtApplName  LeaveTypeDesc     DeptName    txtManagerName    txtApplTotalDays
                     
Ng            Hospitalization  Development    PH                2.0
Aqilah        Maternity Leave    Human        ELE               1.0
Sharah        Annual Leave      Human         ELE               2.0
Aqila         Annual Leave      Human         ELE               1.0

【问题讨论】:

  • 请以格式化文本或更好的 DDL/DML 语句形式显示示例数据和预期结果,而不是图像。我建议使用较短的(1 或 2 个字符)别名,目的是使查询更简洁。我建议与您的外壳保持一致,选择您是使用小写还是大写(或混合),然后始终使用它。这将使您的查询更易于阅读。合并这两条记录的标准是什么,将使用什么开始日期?
  • 我仍然在测试阶段发布的查询,我试图实现的是如果 LeaveTypeDesc 和 txtApplName 相同,则记录应仅显示一条记录,但应添加 txtAppltotalDays。
  • 我编辑了原始帖子,并添加了示例数据和预期结果。注意:日期可以是随机的,我可以选择我想要的任何日期

标签: sql sql-server tsql sum sql-server-2014


【解决方案1】:

我猜你正在寻找GROUP BY。对于提供的示例数据,您可以使用以下查询来实现您的预​​期结果。

SELECT txtApplName,LeaveTypeDesc, DeptName,txtManagerName,SUM(txtApplTotalDays)
FROM YOUR_TABLE
GROUP BY txtApplName,LeaveTypeDesc, DeptName,txtManagerName

【讨论】:

  • @lugkenish 。 . .如果这回答了您的问题,您应该接受答案。
  • @GordonLinoff :我标记为正确答案,但堆栈溢出拒绝了我的投票。
  • @lugkenish。您需要单击投票选项下方的勾号以接受答案。检查此链接How do I accept an answer?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-22
  • 2017-12-11
相关资源
最近更新 更多