【问题标题】:Select statement returning all ID values for each row选择语句返回每行的所有 ID 值
【发布时间】:2013-08-16 02:43:47
【问题描述】:

此 select 语句将返回每一行的 timeid 的所有值。 联接在正确的唯一值上联接。 我已经尝试过内连接/左外/右外和完全也选择不同的无济于事。

SELECT
    timed.timeid AS [Time Number], 
    emp.firstname AS [First Name], 
    emp.surname AS [Surame], 
    emp.empid AS [Employee Number], 
    timed.ver AS [Ver],
    timed.tdate AS [Date], 
    shifts.code AS [Code], 
    timed.stime AS [Start], 
    timed.etime AS [End], 
    DATEDIFF(HOUR, timed.stime, timed.etime) AS [Hours]
FROM 
    emp 
    INNER JOIN timed ON emp.divid = timed.divid
    INNER JOIN shifts ON timed.shiftid = shifts.shiftid     

Time Number First Name  Surame  Employee Number Ver     Date    Code      Start        End     Hours
OPS93041        C        BLOGS     G100         142 30/04/2013  Nts     19:00:00    06:00:00    11
OPS93041        L        SMITH     I101         142 30/04/2013  Nts     19:00:00    06:00:00    11
OPS93041        M        WALKER    M115         142 30/04/2013  Nts     19:00:00    06:00:00    11
OPS93041        P        DJANGO    P965         142 30/04/2013  Nts     19:00:00    06:00:00    11

正如上面结果的小例子所示,它正在将 timeid 添加到所有结果中,也可能是除了 emp 表中的值之外的其他值。

期望的输出是这样的。

Time Number First Name  Surame  Employee Number Ver     Date    Code      Start        End     Hours
OPS93041        C        BLOGS     G100         142 30/04/2013  Nts     19:00:00    06:00:00    11
JDY73592        L        SMITH     I101         142 24/03/2013  Nts     11:00:00    17:00:00    6
QJA74057        M        WALKER    M115         188 08/07/2013  Nts     08:00:00    15:00:00    7
PDG03845        P        DJANGO    P965         125 19/01/2013  Nts     22:00:00    03:00:00    5

【问题讨论】:

  • 这有什么问题?请在sqlfiddle中提供表结构
  • 在上面添加了结果表和更多解释
  • 添加所需的输出
  • 这个查询没有错。如果您仍然怀疑将您的三个表与数据放在一起。并输入所需的确切输出。
  • 添加了期望的结果,应该只有 1 或 2 个相同的时间数字,但此刻它会将每个时间数字赋予每一行并创建大量重复数据。跨度>

标签: sql select join duplicates row


【解决方案1】:

这是通过按员工对数据进行分组来解决的,因此时间与员工行相关,而不是与班次号相关

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2012-12-12
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多