【问题标题】:Calculating average days (with DateDiff and NULL)计算平均天数(使用 DateDiff 和 NULL)
【发布时间】:2014-12-11 18:45:07
【问题描述】:

MS 访问 (Jet-SQL)

我想找出两个日期之间的平均差异,以天为单位。但是,一个日期包含我想从计算中排除的 NULL 值。请注意,我不能使用 WHERE 函数,因为我的 SELECT 语句(此处未显示)中实际上还有其他聚合计算,我不想过滤。

我的最后一次尝试:

    SELECT
        Avg(Iif(dateDischarge IS NOT NULL, DateDiff('d',DateValue(dateRandomisation),(DateValue(dateDischarge))),NULL)) AS dtdis_dtrand

    FROM Table
    GROUP BY Variable

感谢您的帮助,

罗伯

【问题讨论】:

    标签: ms-access null average datediff


    【解决方案1】:

    要从计算中排除,您需要从 AVG() 中排除行,因为当前 0 有影响。

    SELECT 中排除它们:

    ... FROM Table WHERE dateDischarge IS NOT NULL
    

    【讨论】:

    • 感谢亚历克斯的回复。为简单起见,我从上面的示例中删除了我的其他 SELECT 语句。我实际上不想从我的其他聚合函数中排除任何情况,因此 WHERE 函数在这种情况下将无济于事。
    • 尝试在 IIF 中使用 NULL 而不是 0?
    • Same error msg: "Data type mismatch in criteria expression"... 我知道 DateDiff 语句在非分组查询上正常工作,这会在 dateDischarge=NULL 的行中产生 #ERROR
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多