2011-09-27 139 views
0

我有表结构如下...SQL Server 2008中的问题

 ReturnID SumbitID Status 

      1   1 1 
      1   NULL 2 
      2   2 3 
      3   3 1 
      3   3 1 

我想这个输出.....

 RetunrID TotalAttempt Success 
      1  2   1 
      2  1   0 
      3  2   2 

计数ReturnID是TotalAttempt,当ReturnID = sumbitID和状态= 1然后它算作成功... 在此先感谢!

回答

2

像这样的事情

SELECT 
    T.ReturnID 
, COUNT(T.ReturnID) AS TotalAttempt 
, SUM(CASE WHEN T.ReturnID = T.sumbitID AND T.Status = 1 THEN 1 ELSE 0 END) AS Status 
FROM dbo.MyTable T 
group by T.ReturnID 
+0

工作,但你必须在条款最后添加组.... SELECT T.ReturnID ,COUNT(T.ReturnID )AS TotalAttempt ,SUM(CASE WHEN T.ReturnID = T.sumbitID AND T.Statusa = 1 THEN 1 ELSE 0 END)AS Status FROM @table T GROUP BY T.ReturnID – jats

0

检查:

SELECT T.ReturnID , COUNT(T.ReturnID) AS TotalAttempt , SUM(CASE WHEN T.ReturnID = T.sumbitID AND T.Statusa = 1 THEN 1 ELSE 0 END) AS Status FROM @table T GROUP BY T.ReturnID