【问题标题】:Querying the number of specific items in a database查询数据库中特定项目的数量
【发布时间】:2013-01-03 07:13:42
【问题描述】:

我只是想知道如何计算特定设备的数量..

SELECT 
    EQUIPMENTS.DESCRIPTION AS [EQUIPMENT TYPE], 
    Count(EQUIPMENTS.EQNAME) AS QUANTITY,
    (SELECT Count(EQUIPMENTS.CONDITION) FROM EQUIPMENTS WHERE EQUIPMENTS.CONDITION = 'Functional') AS WORKING,
    (SELECT Count(EQUIPMENTS.CONDITION) FROM EQUIPMENTS WHERE EQUIPMENTS.CONDITION = 'Non-Functional') AS [NON-WORKING]
FROM EQUIPMENTS
GROUP BY EQUIPMENTS.DESCRIPTION;

此查询返回以下内容:

EQUIPMENT NAME : PROJECTOR
QUANTITY : 3
WORKING : 2
NON-WORKING :1

现在,如果我添加另一个具有不同类型的设备,例如计算器,它将具有相同的 WORKING 和 NON-WORKING 计数,仅适用于 PROJECTOR。我该如何让它也计算计算器的数量以及工作和非工作本身的数量?我的意思是每当我添加另一个具有特定描述的设备时,查询也会独立计算它?

我使用的是 VB.NET,这个查询是在 MS ACCESS 2007 中进行的。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    使用IIf()表达式,当条件满足时返回1,不满足时返回0。然后Sum 那些值。

    SELECT 
        e.DESCRIPTION AS [EQUIPMENT TYPE], 
        Count(e.EQNAME) AS QUANTITY,
        Sum(IIf(e.CONDITION = 'Functional', 1, 0)) AS WORKING,
        Sum(IIf(e.CONDITION = 'Non-Functional', 1, 0)) AS [NON-WORKING]
    FROM EQUIPMENTS AS e
    GROUP BY e.DESCRIPTION;
    

    【讨论】:

    • 我有一个问题,当我将此查询传输到 VB.Net 中的 TableAdapter 查询配置向导时,出现了一条通知。函数参数列表中的错误:“=”无法识别。无法解析查询文本似乎是什么问题?
    • 对不起,我不知道 VB.Net,所以我不知道为什么它会抱怨那个 SQL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2017-05-11
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多