【问题标题】:AND condition not working in Access for WHEREAND 条件在 Access for WHERE 中不起作用
【发布时间】:2018-05-18 01:53:50
【问题描述】:

我有以下查询,我希望将 null 的总计设置为 $0,但问题是某些行在总计列中只是空白,不应设置为零,因为它们只是中断电子表格。因此,我试图将 null 的总计设置为 $0,其中在总计列旁边的列中还有一个组号。

这是我的查询

UPDATE COBCoversheet, COVERSHEET1 
SET Total = '$0.00'
WHERE (COBCoversheet.Number = COVERSHEET1.Field1) 
  AND (COBCoversheet.Total IS NULL);

我也试过了,

UPDATE COBCoversheet 
INNER JOIN COVERSHEET1 
   ON COBCoversheet.Number = COVERSHEET1.Field1 
SET Total = '$0.00'
WHERE (COBCoversheet.Number = COVERSHEET1.Field1) 
  AND (COBCoversheet.Total IS NULL)

都没有用。我不是 SQL 大师,但我觉得我知道很多,所以任何解释都会有所帮助!谢谢。

【问题讨论】:

  • 您遇到的错误是什么?
  • 您是否检查过 COBCoversheet.Total 没有返回空白或空格而不是空值?
  • @WillReid 这只是告诉我我要更新 0 个零,这不应该是真的
  • @JoeC 我认为可能是这种情况,但是当我执行基本的 UPDATE COBCoversheet SET Total = '$0.00' WHERE Total IS NULL 时,它会很好地更新列(除了它还会更新那些空白行我不想更新)
  • 尝试将 where 和 the and 放在同一组括号内。在哪里(...和...)。

标签: sql ms-access


【解决方案1】:
UPDATE COBCoversheet 
INNER JOIN COVERSHEET1 ON COBCoversheet.Number = COVERSHEET1.Field1 
SET Total = '$0.00'
WHERE COBCoversheet.Total IS NULL

如果它说“即将更新 0 行”,那么您的数据有问题,它没有验证为 NULL 值(可能该值是空格或空)

【讨论】:

  • 该字段是数据类型货币,所以当我尝试 Total = '' 时,它说数据类型不匹配。如何在没有 IS NULL 的情况下检查是否为空?
  • 如果我没记错的话,那是布尔验证IsEmpty([Field])
【解决方案2】:

更新:我在用新的总数重置它们之前删除了总数。为了避免出现空值的情况,我只是按原样导入电子表格(空值 = $-),然后就这样做了

UPDATE COBCoversheet SET Total = '$0.00' WHERE Total = '$-';

只要导入的电子表格总是以 $- 为 $0,那么我应该可以很好地运行查询。谢谢大家!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-30
    • 2022-07-15
    • 2012-12-11
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多