'USE [SAPL_BK_NEW]
GO
/****** Object: StoredProcedure [dbo].[MachineCTE] Script Date: 11/12/2016 10:32:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec MachineCTE 'AQUARELL'
ALTER proc [dbo].[MachineCTE]
(
@companyName varchar(100)
)
AS
BEGIN
CREATE TABLE #MachineCTE
(
ID int,
mcdesp varchar(max),
mccost int,
mcopsts varchar(30),
State varchar(100),
mcfact varchar(50),
mccomp varchar(60)
);
WITH Machine_CTE(ID,mcdesp,mccost, mcopsts,State,mcfact,mccomp)
AS (SELECT ROW_NUMBER() OVER(ORDER BY mcdesp ASC),
mac.mcdesp as Machine,count(mac.mccost ) as Cost,count(mcopsts ) as Condition,mcopsts as [State],mcfact,mccomp
FROM Machine mac
where Rtrim(mac.mccomp)=@companyName GROUP BY mcdesp ,mcopsts,mcfact,mccomp)
insert into #MachineCTE select ID,mcdesp,mccost, mcopsts,State,mcfact,mccomp from Machine_CTE
select * from (SELECT
CTE.mcdesp as Machines_Name,
SUM(CTE.mccost) as Total_Machines,
ISNULL((SELECT mcopsts FROM #MachineCTE MCTE WHERE State='GOOD' and MCTE.mcdesp = CTE.mcdesp ),0) AS [GOOD],
ISNULL((SELECT mcopsts FROM #MachineCTE MCTE WHERE State='IDLE' and MCTE.mcdesp = CTE.mcdesp ),0) AS [IDLE],
ISNULL((SELECT mcopsts FROM #MachineCTE MCTE WHERE State='UR' and MCTE.mcdesp = CTE.mcdesp ),0) AS [UR]
FROM #MachineCTE CTE GROUP BY mcdesp) t1 union all
select * from
(SELECT
CTE.mcdesp as Machines_Name,
'0' as Total_Machines,
'0' AS [GOOD],
'0' AS [IDLE],
'0' AS [UR]
FROM #MachineCTE CTE where mcfact='EXTRA' GROUP BY mcdesp,mccomp,mcopsts,mcfact) t2
drop table #MachineCTE
END'
please help to solve this issue
SELECT
CTE.mcdesp as Machines_Name,
SUM(CTE.mccost) as Total_Machines,
ISNULL((SELECT mcopsts FROM #MachineCTE MCTE WHERE State='GOOD' and MCTE.mcdesp = CTE.mcdesp ),0) AS [GOOD],
ISNULL((SELECT mcopsts FROM #MachineCTE MCTE WHERE State='IDLE' and MCTE.mcdesp = CTE.mcdesp ),0) AS [IDLE],
ISNULL((SELECT mcopsts FROM #MachineCTE MCTE WHERE State='UR' and MCTE.mcdesp = CTE.mcdesp ),0) AS [UR]
FROM #MachineCTE CTE GROUP BY mcdesp
the above statement is the issue
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression