这里我对sql查询有疑问。
在这种情况下,我有一个名为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
我怀疑到达此为止,我将得到犯罪总额和适当的用户数。例如。
UserID : 520 Totalcrime:6000
但还有另一个名为tblAudit
的表,我们将获得logondate和userid,这是跟踪...所以我想基于userlogin(userid)显示犯罪......自上次登录以来。因此,当用户登录时,它会在jquery通知中显示“自上次登录后已完成60项犯罪”。
我想要查询格式的帮助。
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分: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)