【问题标题】:Return matching check dates for employees but getting previous check dates that match the gross amount of the checks SQL返回员工的匹配检查日期,但获取与检查总金额相匹配的先前检查日期 SQL
【发布时间】:2020-02-03 20:08:35
【问题描述】:

我正在尝试显示在最新支票日期收到支票的员工的工资单日期。但是,当我输入以下内容时,如果他们的支票金额与之前的支票相符,它将多次返回员工。这不应该返回与当前支票日期匹配的日期,而不是返回具有相同总工资的先前支票日期吗?

        WHEN ext.TerminationDate IS NULL AND @CheckDate = f.CheckDate THEN format(@CheckDate,'yyyyMMdd')

f 是我从中提取日期的表,@checkdate 是一个参数。有谁知道是什么导致了这个问题?

【问题讨论】:

    标签: sql-server database case-when


    【解决方案1】:

    从您设置 WHEN 语句的方式来看,您似乎已将此设置为 SELECT 语句中的一列。如果这就是它所在的位置,那么您的脚本并没有真正过滤掉任何东西。您只是检查当前行是否与您的变量匹配,然后将您的变量(一旦格式化)传回。

    这就是我如何看待你的查询:

    select OtherColums, format(f.CheckDate, 'yyyyMMdd') from f where f.CheckDate = @CheckDate
    

    这将过滤掉只有 checkDate 列等于您的变量的记录。如果这没有帮助,请提供更多信息,因为您提供的代码没有给我们提供太多上下文。

    【讨论】:

      猜你喜欢
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多