【问题标题】:SQL Union and Group By(group by specific value but show all)SQL Union 和 Group By(按特定值分组但显示全部)
【发布时间】:2018-07-10 04:05:18
【问题描述】:

如何按值将这些表与特定组合并。我需要按完成日期、ETR 日期、设备名称、项目和操作员名称对其进行分组,但需要 ETR 实际小时数、完成实际小时数等仍显示在同一行中。

这是我的示例查询。

SELECT * FROM
(
   SELECT '' as AccomplishmentDate, ETRDate, ProjectName,EquipmentName, 0 as 
        AccomplishmentActualHour, ETRActualHour FROM Table1

   UNION

   SELECT AccomplishmentDate, '' as ETRDate, ProjectName,,EquipmentName,
        AccomplishmentActualHour,0 as ETRActualHour FROM Table1

)as Transaction

【问题讨论】:

  • 当您说 MS SQL 并标记问题时,我假设您指的是 SQL Server。
  • 您是否尝试在查询中添加 group by 子句?
  • 如果我使用 group by,我能得到的只是 group by 子句中包含的值,对吗?比如 ProjectName、EquipmentName。 ETR Actual Hour 或我需要显示的其他列怎么样?我只需要通过使用 ProjectName 或 EquipmentName 将两行合并为一行,但显示不在组中的其他值?抱歉,这是我第一次使用 stackoverflow :)
  • 您好,请查看我的最新图片以使其清晰。谢谢!
  • 对你想要的列使用 MAX(neededcolumn) 可能会给你想要的结果。您可以从每个未分组的列中获取聚合,并且您必须确定您需要的聚合(可能是 SUM 或 MAX)。

标签: sql sql-server union


【解决方案1】:

选择您想要的名称或列。不要使用 *.它选择所有属性 喜欢 Select Accomplisment..... from(select * from table union select * from table

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    相关资源
    最近更新 更多