2012-04-24 50 views
0

這裏我對sql查詢有疑問。SQL QUERY獲得兩個日期範圍之間的特定列的計數

在這種情況下我有一個表叫tblcrime:在這裏我們將得到的總和(罪)在這裏我跟蹤MainID和sum(犯罪)查詢將是這樣的:

SELECT sum(o.crimeID) as crimeNumber,u.UserID 
    from tblcrime o 
    inner join tblSubContractor ts on 
    o.MainID=ts.SubContractorID 

從這裏我將清潔香港在tblUSER這些subcontractorID

inner join tblUser u on 
    u.SubContractorID=ts.SubContractorID 

,我的疑問是,高達這裏我會得到犯罪和適當的用戶ID的總和,對於如。

UserID : 520 Totalcrime:6000 

,但有一個名爲tblAudit,我們將得到logondate和用戶ID,這是在這裏跟蹤另一個表..所以我想根據用戶登陸(用戶ID)顯示犯罪......上次登錄。因此,當用戶登錄時,在jquery通知中顯示「自從上次登錄以來已經完成了60個犯罪行爲」。

我想要查詢格式的幫助。

+0

你能告訴我們更多的有關表結構?即。是否有犯罪或tblSubContractor有任何可以使用的日期時間列 – Lex 2012-04-24 09:55:29

+0

這裏tblAudit有登錄日期coloumn traking用戶是由userid,這是tblUSER的主要關鍵和tblcrime已'crimedate'coloumn它在哪裏traks犯罪完成日期。 – RnR 2012-04-24 09:59:59

+0

此查詢用戶特定?即。你是否將用戶ID作爲參數傳入? – Lex 2012-04-24 10:12:18

回答

0

我不確定,如果我理解你的問題是正確的,但可能是這樣,你在找什麼?

SELECT sum(o.crimeID) as crimeNumber,u.UserID 
from tblcrime o 
inner join tblSubContractor ts on o.MainID=ts.SubContractorID 
inner join tblUser u on u.SubContractorID=ts.SubContractorID 
where 
u.UserID = theOneYouAreLookingFor 
AND crimedate >= lastLogOn 
GROUP BY u.UserID 
0

首先,我懷疑調用SUM功能確實應該給COUNT。前者將指定列的值相加,而後者則爲您提供行計數。

其次,你的tblcrime表存儲犯罪加入的日期嗎?我會假設它的確如此,我們來調用列DateAdded。下面的查詢應該工作:

SELECT  COUNT(o.crimeID) AS crimeNumber, 
      u.UserID 
FROM  tblcrime o 
INNER JOIN tblSubContractor ts on o.MainID = ts.SubContractorID 
INNER JOIN tblUser u on u.SubContractorID = ts.SubContractorID 
INNER JOIN tblAudit a on a.userid = u.UserID 
WHERE  a.logondate < o.DateAdded 
GROUP BY u.UserID 
+0

Ya傳遞,但這裏logondate是在另一個名爲tblAudit的表上,而不是dateadded ter是另一個coloumn,叫做crimedate,它在其中傳遞crimedone的日期,但它在tblcrime中。因此,這裏frm tblcrime我只能從tblcrime得到計數(犯罪),但我想從tblaudit跟蹤的用戶標識詳細信息 – RnR 2012-04-24 23:55:26

+0

您能否更新問題以包含您的模式?沒有它,幾乎不可能正確回答你的問題。 – weenoid 2012-04-25 08:02:10

0

你可以找到該用戶的最大auditdate:

SELECT sum(o.crimeID) as crimeNumber,u.UserID 
    from tblcrime o 
    inner join tblSubContractor ts on 
    o.MainID=ts.SubContractorID 
inner join tblUser u on 
    u.SubContractorID=ts.SubContractorID 
where o.crimeDate >= (select max(auditdate) from tblAudit where UserID = @UserID) 
相關問題