'SQL Server SubQuery Error - Only one expression can be specified in the select list when the subquery is not introduced with EXISTS
I'm trying to select multiple values from 3 subqueries and combine them together. But I get the error "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS. Here is my code.
SELECT(
SELECT ROUND(
(SELECT SUM(TotalProcessed) FROM WIP_CONTENT WHERE WipContentClass=1 )
/(SELECT SUM(TotalProcessed) from WIP_CONTENT WHERE WipContentClass is not null)*100,0) AS [Quality],
(SELECT ROUND(
CAST((SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS UpTime FROM RESOURCE_LABOR WHERE ReasonCode='Running' OR ReasonCode='RUNNING') AS float)/
CAST(
((SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS UpTime FROM RESOURCE_LABOR WHERE ReasonCode='Running' OR ReasonCode='RUNNING')+
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS IdleTime FROM RESOURCE_LABOR WHERE ReasonCode='Idle Time')+
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS SetupTime FROM RESOURCE_LABOR WHERE ReasonCode='MACHINE SETUP')+
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS DownTime FROM RESOURCE_LABOR
INNER JOIN REASON_CODE RC ON RESOURCE_LABOR.ReasonCode = RC.ReasonCode WHERE RC.ReasonType='3'))AS FLOAT)*100,0) AS [Availability]),
(SELECT ROUND((
((SELECT SUM(TotalProcessed) AS TotalCount from WIP_CONTENT WHERE WipContentClass is not null)/
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS UpTime FROM RESOURCE_LABOR WHERE ReasonCode='Running' OR ReasonCode='RUNNING'))/
15)*100,0) AS [Performance]))
I don't see where I'm selecting multiple columns in my WHERE clause. Appreciate any insight.
Solution 1:[1]
There was an issue in bracketing correctly. Its a complicated combination of subqueries and I didnt realize there was a missing bracket. Here is the code that works
SELECT
(SELECT ROUND(
(SELECT SUM(TotalProcessed) FROM WIP_CONTENT WHERE WipContentClass=1 )
/(SELECT SUM(TotalProcessed) from WIP_CONTENT WHERE WipContentClass is not null)*100,0)) AS Quality,
(SELECT ROUND(
CAST((SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS UpTime FROM RESOURCE_LABOR WHERE ReasonCode='Running' OR ReasonCode='RUNNING') AS float)/
CAST(
((SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS UpTime FROM RESOURCE_LABOR WHERE ReasonCode='Running' OR ReasonCode='RUNNING')+
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS IdleTime FROM RESOURCE_LABOR WHERE ReasonCode='Idle Time')+
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS SetupTime FROM RESOURCE_LABOR WHERE ReasonCode='MACHINE SETUP')+
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS DownTime FROM RESOURCE_LABOR
INNER JOIN REASON_CODE RC ON RESOURCE_LABOR.ReasonCode = RC.ReasonCode WHERE RC.ReasonType='3'))AS FLOAT)*100,0))Availability,
(
SELECT ROUND((
((SELECT SUM(TotalProcessed) AS TotalCount from WIP_CONTENT WHERE WipContentClass is not null)/
(SELECT SUM(DATEDIFF(HOUR, [StartTime], [EndTime])) AS UpTime FROM RESOURCE_LABOR WHERE ReasonCode='Running' OR ReasonCode='RUNNING'))/
15)*100,0)) AS Performance
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Mohi |