2014-04-04 27 views
0

如何將計數除以另一個計數。我看到了一些不同的方法,但我無法讓他們爲我的目的工作。我目前使用的代碼是:計數除以計數

Select(select COUNT(lUsers) 
     FROM Tlocation 
     WHERE dLastUpdated IS NOT NULL 
      AND dRemovalDate BETWEEN DATEADD(day,-7,GETDATE()) and GETDATE()) 
       /
      (SELECT COUNT(lUsers) 
     FROM Tlocation 
     WHERE dLastUpdated < GETDATE() 
      AND dRemovalDate IS NULL OR dRemovalDate > GETDATE()) 

但是這只是每次都返回一個0。

+0

請單獨運行每個子查詢和檢查什麼值它試圖通過分裂。這可能是由頂級子查詢總是返回0 – Trafz

+0

頂部返回1562和底部返回92825 – Vogtle

+0

哦。那麼小數。一刻:p – Trafz

回答

0

這是因爲該值小於INT(COUNT()返回)。這裏是你如何能做到這一點:

SELECT 
    (
     SELECT 1562 
    ) 
    /
    CAST(
     (
      SELECT 92825 
     ) 
     AS DECIMAL(20, 10) 
    ) 
; 

或者您的查詢:

Select(select COUNT(lUsers) 
     FROM Tlocation 
     WHERE dLastUpdated IS NOT NULL 
      AND dRemovalDate BETWEEN DATEADD(day,-7,GETDATE()) and GETDATE()) 
       /
      CAST(
        (SELECT COUNT(lUsers) 
       FROM Tlocation 
       WHERE dLastUpdated < GETDATE() 
        AND dRemovalDate IS NULL OR dRemovalDate > GETDATE()) 
      AS DECIMAL(20, 10) 
      ) 
; 
+0

這工作得很好!謝謝! – Vogtle