计数查询给出错误的列名错误
Count query giving wrong column name error
select COUNT(analysed) from Results where analysed="True"
我想显示分析值为真的行数。
但是,我的查询给出了错误:"The multi-part identifier "Results.runId" 无法绑定。"。
这是实际查询:
select ((SELECT COUNT(*) AS 'Count'
FROM Results
WHERE Analysed = 'True')/failCount) as PercentAnalysed
from Runs
where Runs.runId=Analysed.runId
我的 table 架构是:
我想要的特定 runId 的值是:(analysed=true 的条目数)/failCount
EDIT : 如何合并这两个查询?
i) select runId,Runs.prodId,prodDate,prodName,buildNumber,totalCount 作为 TotalTestCases,(passCount*100)/(passCount+failCount) 作为 PassPercent,
passCount,failCount,runOwner from Runs,Product where Runs.prodId=Product.prodId
ii) select (cast(counts.Count as decimal(10,4)) / cast(failCount as decimal(10,4))) as PercentAnalysed
从运行
内部联接
(
SELECT COUNT(*) AS 'Count', runId
从结果
WHERE 分析 = 'True'
按 runId 分组
) 计数
在 counts.runId = Runs.runId
我试过这个:
select runId,Runs.prodId,prodDate,prodName,buildNumber,totalCount 作为 TotalTestCases,(passCount*100)/(passCount+failCount) 作为 PassPercent,
passCount,failCount,runOwner,counts.runId,(cast(counts.Count as decimal(10,4)) / cast(failCount as decimal(10,4))) as PercentAnalysed
来自 Runs,Product
内部联接
(
SELECT COUNT(*) AS 'Count', runId
从结果
WHERE 分析 = 'True'
按 runId 分组
) 计数
在 counts.runId = Runs.runId
其中 Runs.prodId=Product.prodId
但它给出了错误。
在Count
中使用CASE
SELECT COUNT(CASE WHEN analysed='True' THEN analysed END) [COUNT]
FROM Results
- Click here 查看结果
我会尝试以下查询:
SELECT COUNT(*) AS 'Count'
FROM Results
WHERE Analysed = 'True'
这将统计分析为 'True'
的所有行。如果您的 Analysed
列的数据类型是 BIT (Boolean) 或 STRING(VARCHAR, NVARCHAR),这应该有效。
select COUNT(*) from Results where analysed="True"
您的问题是由 table 的不正确连接引起的。您需要来自运行和结果的信息,但它们在您的查询中没有正确组合。您对嵌套子查询有正确的想法,但它在错误的位置。您还在外部 where 子句中引用了 Analyzed table ,但它没有包含在 from 子句中。
试试这个:
select (cast(counts.Count as decimal(10,4)) / cast(failCount as decimal(10,4))) as PercentAnalysed
from Runs
inner join
(
SELECT COUNT(*) AS 'Count', runId
FROM Results
WHERE Analysed = 'True'
GROUP BY runId
) counts
on counts.runId = Runs.runId
我已将其设置为内部联接,以消除任何没有分析结果的运行;如果需要这些行,可以将其更改为左连接,但需要添加代码来处理空情况。我还向这两个数字添加了转换,否则查询将执行整数除法并截断任何小数。
select COUNT(analysed) from Results where analysed="True"
我想显示分析值为真的行数。
但是,我的查询给出了错误:"The multi-part identifier "Results.runId" 无法绑定。"。
这是实际查询:
select ((SELECT COUNT(*) AS 'Count'
FROM Results
WHERE Analysed = 'True')/failCount) as PercentAnalysed
from Runs
where Runs.runId=Analysed.runId
我的 table 架构是:
我想要的特定 runId 的值是:(analysed=true 的条目数)/failCount
EDIT : 如何合并这两个查询?
i) select runId,Runs.prodId,prodDate,prodName,buildNumber,totalCount 作为 TotalTestCases,(passCount*100)/(passCount+failCount) 作为 PassPercent, passCount,failCount,runOwner from Runs,Product where Runs.prodId=Product.prodId
ii) select (cast(counts.Count as decimal(10,4)) / cast(failCount as decimal(10,4))) as PercentAnalysed 从运行 内部联接 ( SELECT COUNT(*) AS 'Count', runId 从结果 WHERE 分析 = 'True' 按 runId 分组 ) 计数 在 counts.runId = Runs.runId
我试过这个:
select runId,Runs.prodId,prodDate,prodName,buildNumber,totalCount 作为 TotalTestCases,(passCount*100)/(passCount+failCount) 作为 PassPercent,
passCount,failCount,runOwner,counts.runId,(cast(counts.Count as decimal(10,4)) / cast(failCount as decimal(10,4))) as PercentAnalysed
来自 Runs,Product
内部联接
(
SELECT COUNT(*) AS 'Count', runId
从结果
WHERE 分析 = 'True'
按 runId 分组
) 计数
在 counts.runId = Runs.runId
其中 Runs.prodId=Product.prodId
但它给出了错误。
在Count
CASE
SELECT COUNT(CASE WHEN analysed='True' THEN analysed END) [COUNT]
FROM Results
- Click here 查看结果
我会尝试以下查询:
SELECT COUNT(*) AS 'Count'
FROM Results
WHERE Analysed = 'True'
这将统计分析为 'True'
的所有行。如果您的 Analysed
列的数据类型是 BIT (Boolean) 或 STRING(VARCHAR, NVARCHAR),这应该有效。
select COUNT(*) from Results where analysed="True"
您的问题是由 table 的不正确连接引起的。您需要来自运行和结果的信息,但它们在您的查询中没有正确组合。您对嵌套子查询有正确的想法,但它在错误的位置。您还在外部 where 子句中引用了 Analyzed table ,但它没有包含在 from 子句中。
试试这个:
select (cast(counts.Count as decimal(10,4)) / cast(failCount as decimal(10,4))) as PercentAnalysed
from Runs
inner join
(
SELECT COUNT(*) AS 'Count', runId
FROM Results
WHERE Analysed = 'True'
GROUP BY runId
) counts
on counts.runId = Runs.runId
我已将其设置为内部联接,以消除任何没有分析结果的运行;如果需要这些行,可以将其更改为左连接,但需要添加代码来处理空情况。我还向这两个数字添加了转换,否则查询将执行整数除法并截断任何小数。