2013-10-28 2 views
-2

주당 판매 인당 데이터를 생성하고 지난 주와 내 결과를 비교하고 현재 주에서 지난 주를 뺍니다. 때로는 현재 주가에 어떤 가치도 없습니다. 그 상황을 '0'으로 바꾸어서 처리하고 싶습니다. 나는 이것에 정말 좋지 않아 도움을 구하고 있습니다. 병합 기능의 예에서Null 값 처리

SELECT t2.emp_name, 
     t2.pipelinetarget, 
     Sum(t0.maxsumloc)    AS SaleOpp, 
     Datepart(ww, t0.opendate)  AS [Week #], 
     Isnull ((SELECT Sum(maxsumloc) AS Expr1 
       FROM dbo.oopr AS A 
       WHERE (slpcode = t1.slpcode) 
         AND (Datepart(ww, opendate) = 
          Datepart(ww, Getdate()) - 1) 
         AND (Datepart(yy, opendate) = Datepart(yy, Getdate())) 
       GROUP BY slpcode), 0) AS LastWeek, 
     Isnull ((SELECT Sum(maxsumloc) AS Expr1 
       FROM dbo.oopr AS A 
       WHERE (Datepart(ww, opendate) = Datepart(ww, Getdate())) 
         AND (Datepart(yy, opendate) = Datepart(yy, Getdate())) 
         AND (maxsumloc >= 10000.00) 
         AND (slpcode = t1.slpcode) 
       GROUP BY slpcode), 0) AS [SumOf-Opp-obove-10k], 
     Isnull ((SELECT Count(opprid) AS Expr1 
       FROM dbo.oopr AS A 
       WHERE (Datepart(ww, opendate) = Datepart(ww, Getdate())) 
         AND (Datepart(yy, opendate) = Datepart(yy, Getdate())) 
         AND (maxsumloc >= 10000.00) 
         AND (slpcode = t1.slpcode) 
       GROUP BY slpcode), 0) AS [#-Opp-obove-10k], 
     Isnull ((SELECT Sum(maxsumloc) AS Expr1 
       FROM dbo.oopr AS A 
       WHERE (Datepart(ww, opendate) = Datepart(ww, Getdate())) 
         AND (Datepart(yy, opendate) = Datepart(yy, Getdate())) 
         AND (maxsumloc < 10000.00) 
         AND (slpcode = t1.slpcode) 
       GROUP BY slpcode), 0) AS [SumOf-Opp-below-10k], 
     Isnull ((SELECT Count(opprid) AS Expr1 
       FROM dbo.oopr AS A 
       WHERE (Datepart(ww, opendate) = Datepart(ww, Getdate())) 
         AND (Datepart(yy, opendate) = Datepart(yy, Getdate())) 
         AND (maxsumloc < 10000.00) 
         AND (slpcode = t1.slpcode) 
       GROUP BY slpcode), 0) AS [#-Opp-below-10k] 
FROM dbo.oslp AS t1 
     LEFT OUTER JOIN dbo.oopr AS t0 
        ON t1.slpcode = t0.slpcode 
     LEFT OUTER JOIN dbo.[user_qsalestarget(salesrep)] AS t2 
        ON t2.emp_name = t1.slpname 
     LEFT OUTER JOIN dbo.ocrd AS t4 
        ON t4.cardcode = t0.cardcode 
     LEFT OUTER JOIN dbo.[user_clusters(sp)] AS t5 
        ON t5.emp_name = t1.slpname 
WHERE (Datepart(ww, t0.opendate) = Datepart(ww, Getdate())) 
     AND (Datepart(yy, t0.opendate) = Datepart(yy, Getdate())) 
     AND (t5.title = 'Outside Sales Rep') 
GROUP BY t2.emp_name, 
      t1.slpcode, 
      Datepart(ww, t0.opendate), 
      t2.pipelinetarget 
+0

가능성은 우리의 첫 번째 null 이외의 값 즉, 귀하의 값 또는 제로 것인지를 돌려 "COALESCE (thePossibleNullValue, 0) MYTABLE FROM 선택" 더 나은 당신을 도울 수있는 몇 가지 create table statement를 얻을 수 있습니까? – David

답변