2016-09-07 103 views
0

我是新来的存储过程,我得到一个错误:存储过程循环错误

Subquery returned more than 1 value. This is not permitted when the subquery follows

My Table

E_R_Main是头表,E_R_Detail是详细信息表。两个表都使用R_ID加入。

我的预期输出:

enter image description here

代码:

DECLARE @LALA NVARCHAR(10); 
DECLARE @LALA2 NVARCHAR(10); 

CREATE TABLE #TEMP 
(
    EMP_NAME nvarchar(256), 
    Total_Pending nvarchar(256), 
    Reschedule_Task nvarchar(256), 
    New_Task nvarchar(256) 
) 

--select * from #TEMP 

INSERT INTO #TEMP(EMP_NAME, Total_Pending) 
    SELECT DISTINCT(PIC), COUNT(PIC) AS COUNTTT 
    FROM E_R_DetailT A 
    INNER JOIN E_R_MainT b ON a.R_ID = b.R_ID 
    WHERE PIC IS NOT NULL 
    GROUP BY T_EMP_ID 

SET @LALA = (SELECT COUNT(B.R_ID) AS TEXSST 
      FROM E_R_MainT A 
      INNER JOIN E_R_DetailT B ON A.R_ID = B.R_ID 
      WHERE (b.R_Y = '[Redo]' OR R_Y_N = '[r]') 
       AND (STAT = 'S_5' OR STAT = 'S_3') 
      GROUP BY T_EMP_ID) 

SET @LALA2 = (SELECT DISTINCT(B.T_EMP_ID) 
       FROM E_R_MainT A 
       INNER JOIN E_R_DetailT B ON A.R_ID = B.R_ID 
       WHERE (b.R_Y = '[Redo]' OR R_Y_N = '[r]') 
       AND (STAT = 'S_5' OR STAT = 'S_3') 
       GROUP BY T_EMP_ID) 

UPDATE #TEMP 
SET Reschedule_Task = @LALA 
WHERE #TEMP.EMP_NAME = @LALA2 

--SELECT * FROM #TEMP 
SELECT 
    B.Name, a.Total_Pending, New_Task, 
    CASE 
     WHEN Reschedule_Task IS NULL 
      THEN 0 
      ELSE Reschedule_Task 
    END AS User_Feedback 
FROM 
    #TEMP A 
INNER JOIN 
    UserInfo B ON A.EMP_NAME = B.EmployeeNo 

DROP TABLE #TEMP 
+0

你有这个问题既'@ LALA'和'@ LALA2'。你的代码对于你的任务太复杂了。 –

+0

其实我真正的桌子是复杂的。我发布的图片,我使用excel做到了,使它简单.. – KyLim

回答

2

你的代码看起来方式更复杂,解决这个问题比需要。它看起来像有条件聚集JOIN

select d.pic, 
     sum(case when m.status in ('S_1', 'S_3', 'S_4') then 1 else 0 end) as Pending, 
     sum(case when m.status = 'S_1' then 1 else 0 end) as New, 
     sum(case when m.status = 'S_3' then 1 else 0 end) as Reschedule, 
     sum(case when m.status = 'S_4' then 1 else 0 end) as Completed 
from e_r_main m join 
    e_r_detail d 
    on m.r_id = d.r_id 
group by d.pic; 
+0

thx男子的帮助。 – KyLim