0

这里我对sql查询有疑问。

在这种情况下,我有一个名为 tblcrime 的表:我们将在这里获得 sum(crime) 我跟踪 MainID 和 sum(crime) 查询将是这样的:

 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,我们将在其中获取登录日期和用户 ID,在此处进行跟踪。所以我想根据用户登录(用户 ID)显示犯罪...自上次登录以来。因此,当用户登录时,它会在 jquery 通知中显示“自上次登录以来已完成 60 次犯罪”。

我需要查询格式的帮助。

4

3 回答 3

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
于 2012-04-24T10:48:12.537 回答
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 o.crimeDate >= (select max(auditdate) from tblAudit where UserID = @UserID)
于 2012-04-25T08:26:00.993 回答
0

首先,我怀疑对SUM函数的调用应该是对COUNT. 前者将指定列的值相加,而后者为您提供行数。

其次,您的tblcrime表是否存储添加犯罪的日期?我会假设它确实如此,让我们称之为 column 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
于 2012-04-24T10:53:44.717 回答