C# 计算每个实验室的计算机数量
好吧,我有一个问题,就是必须计算来自不同实验室的PC和Mac电脑。在每个实验室,我需要显示有多少台PC和Mac可用。数据来自SQL server,我正在尝试子查询和使用union,这是我最接近我需要的 下面的查询在两个不同的列中显示了PC和Mac的数量,但当然,PC将在一行中,Mac将在其正下方的另一行中。让实验室来两次 例: 查询 那么,有没有办法把它们排成一行呢C# 计算每个实验室的计算机数量,c#,sql,C#,Sql,好吧,我有一个问题,就是必须计算来自不同实验室的PC和Mac电脑。在每个实验室,我需要显示有多少台PC和Mac可用。数据来自SQL server,我正在尝试子查询和使用union,这是我最接近我需要的 下面的查询在两个不同的列中显示了PC和Mac的数量,但当然,PC将在一行中,Mac将在其正下方的另一行中。让实验室来两次 例: 查询 那么,有没有办法把它们排成一行呢 Lab1 -- 5 / 2 或者是否有其他方式来编写查询 任何事情都会有很大的帮助,我几乎被困在这里了 简单的欢呼声(未选中),
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
解决方案为你提供了工作吗?是的,他们非常感谢你,疯子,工作和我需要的完全一样,当然有调整,但总体来说,这个想法是非常好的建议-最好在你回答完问题后接受答案,然后让它打开,这样人们就不知道你是否完成了,或者你仍然需要帮助。很高兴它起到了作用。解决方案为你提供了工作吗?是的,他们非常感谢你,疯子,工作和我需要的完全一样,当然有调整,但总体上这个想法是非常好的建议-最好在你完成问题后接受答案,然后让它打开,这样人们就不知道你是否完成了,或者你仍然需要帮助。很高兴这有帮助。