【问题标题】:MS Access: Count Number of Fields Per Record That Contain Specific Value And Use This Count As Default Value of Another Field Within The Same RecordMS Access:计算每条记录包含特定值的字段数,并将此计数用作同一记录中另一个字段的默认值
【发布时间】:2018-08-09 09:50:04
【问题描述】:

用户输入序列号,然后填写错误名称的数据。每个序列号最多可以有 3 个错误名称。然后将错误名称分类为 A 类或 B 类。

然后是 SumOfErrorTypeA 字段和 SumOfErrorTypeB 字段。用户手动输入每条记录的每种错误类型的总和,但我们的团队需要将其自动化。我尝试了 IIF、Dcounts、VBA 数学,但无济于事……有没有办法做到这一点?谢谢!

Record SerialNumber Error1Name Error1Type Error2Name Error2Type Error3Name Error3Type SumOfErrorTypeA SumOfErrorTypeB
1      111111111    Error1     Type B     Error2     Type A     Error3     Type A     2               1
2      222222222    Error1     Type A     Error2     Type A                           2               0
3      333333333    Error1     Type A                                                 1               0
4      444444444    No error                                                          0               0 

我尝试了 IIF、DCounts、VBA,但没有任何效果。

【问题讨论】:

  • 这个数据显然没有标准化。是否有可用此数据的标准化变体?
  • 嗨@Erik von Asmuth。谢谢你的回复......我是一个新手,不得不谷歌什么是标准化数据!我学到了一些新东西!谢谢你!已回答,但感谢您注意到...

标签: sql ms-access if-statement ms-access-2016 iif


【解决方案1】:

你可以计算总和:

select t.*,
       (iif(Error1Type = "A", 1, 0) +
        iif(Error2Type = "A", 1, 0) +
        iif(Error3Type = "A", 1, 0)
       ) as num_a,
       (iif(Error1Type = "B", 1, 0) +
        iif(Error2Type = "B", 1, 0) +
        iif(Error3Type = "B", 1, 0)
       ) as num_b
from t;

我不确定你想对值做什么,但这让你可以计算它们应该是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    相关资源
    最近更新 更多