2011-09-27 8 views
0

Je table structure suivante ...SQL Server 2008 problème

 ReturnID SumbitID Status 

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

Je veux que cette sortie .....

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

Nombre de ReturnID est TotalAttempt, quand ReturnID = sumbitID ​​et status = 1 Alors ça compte comme un succès ... Merci à l'avance!

Répondre

2

Quelque chose comme ça

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

travail Mais vous devez ajouter clause group by enfin .... SELECT T.ReturnID , COUNT (T.ReturnID) AS TotalAttempt , SUM (CAS LORSQUE T.ReturnID = T.sumbitID ​​ET T.Statusa = 1 ALORS 1 ELSE 0 FIN) AS Statut DE @table GROUPE T DE T.ReturnID – jats

0

Vérifiez ceci:

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