Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算每个实验室的计算机数量_C#_Sql - Fatal编程技术网

C# 计算每个实验室的计算机数量

C# 计算每个实验室的计算机数量,c#,sql,C#,Sql,好吧,我有一个问题,就是必须计算来自不同实验室的PC和Mac电脑。在每个实验室,我需要显示有多少台PC和Mac可用。数据来自SQL server,我正在尝试子查询和使用union,这是我最接近我需要的 下面的查询在两个不同的列中显示了PC和Mac的数量,但当然,PC将在一行中,Mac将在其正下方的另一行中。让实验室来两次 例: 查询 那么,有没有办法把它们排成一行呢 Lab1 -- 5 / 2 或者是否有其他方式来编写查询 任何事情都会有很大的帮助,我几乎被困在这里了 简单的欢呼声(未选中),

好吧,我有一个问题,就是必须计算来自不同实验室的PC和Mac电脑。在每个实验室,我需要显示有多少台PC和Mac可用。数据来自SQL server,我正在尝试子查询和使用union,这是我最接近我需要的

下面的查询在两个不同的列中显示了PC和Mac的数量,但当然,PC将在一行中,Mac将在其正下方的另一行中。让实验室来两次

例:

查询 那么,有没有办法把它们排成一行呢

Lab1 -- 5 / 2
或者是否有其他方式来编写查询

任何事情都会有很大的帮助,我几乎被困在这里了


简单的欢呼声(未选中),可能需要一些语法修正

SELECT Labs.LabName, 
SUM (CASE WHEN Manufacturer = 'Apple' THEN 1 ELSE 0 END) AS 'MAC',
SUM (CASE WHEN Manufacturer != 'Apple' THEN 1 ELSE 0 END) AS 'PC'

FROM HardWare 
INNER JOIN Labs ON HardWare.LabID = Labs.LabID
WHERE ComputerStatus = 'AVAILABLE'
GROUP BY Labs.LabName
ORDER BY Labs.LabName

简单从头开始(未选中),可能需要一些语法修复

SELECT Labs.LabName, 
SUM (CASE WHEN Manufacturer = 'Apple' THEN 1 ELSE 0 END) AS 'MAC',
SUM (CASE WHEN Manufacturer != 'Apple' THEN 1 ELSE 0 END) AS 'PC'

FROM HardWare 
INNER JOIN Labs ON HardWare.LabID = Labs.LabID
WHERE ComputerStatus = 'AVAILABLE'
GROUP BY Labs.LabName
ORDER BY Labs.LabName

实现所需功能的通用子查询语法可能如下所示:

Select 
    labName, 
    (SELECT 
        COUNT(*) 
    FROM hardware 
    WHERE
        hardware.lab = lab.id
        AND type = 'pc'
        AND status = 'available'
    ) as PC, 
    (SELECT 
        COUNT(*) 
    FROM hardware 
    WHERE
        hardware.lab = lab.id
        AND type = 'mac'
        AND status = 'available'
    ) as Mac,
FROM
    labs

实现所需功能的通用子查询语法可能如下所示:

Select 
    labName, 
    (SELECT 
        COUNT(*) 
    FROM hardware 
    WHERE
        hardware.lab = lab.id
        AND type = 'pc'
        AND status = 'available'
    ) as PC, 
    (SELECT 
        COUNT(*) 
    FROM hardware 
    WHERE
        hardware.lab = lab.id
        AND type = 'mac'
        AND status = 'available'
    ) as Mac,
FROM
    labs

解决方案为你提供了工作吗?是的,他们非常感谢你,疯子,工作和我需要的完全一样,当然有调整,但总体来说,这个想法是非常好的建议-最好在你回答完问题后接受答案,然后让它打开,这样人们就不知道你是否完成了,或者你仍然需要帮助。很高兴它起到了作用。解决方案为你提供了工作吗?是的,他们非常感谢你,疯子,工作和我需要的完全一样,当然有调整,但总体上这个想法是非常好的建议-最好在你完成问题后接受答案,然后让它打开,这样人们就不知道你是否完成了,或者你仍然需要帮助。很高兴这有帮助。