我试图写一个SELECT语句检索姓名和身份的行只是为了与最近dateended特定的TIDSQL:GROUP BY与集合函数条款
表模式看起来像
ID int
Name varchar(100)
TID int
DateStarted datetime
DateEnded datetime
Status int
TestQueueTable varchar(50)
TQDID int
ResultsFile varchar(255)
TextResultsFile varchar(255)
当我写选择
select name,status,max(dateended)
from testcasedata
where tid='87946'
group by name,status
检索的行是如下
name status max(dateended)
=====================================================================
IntegrationPlumbingTest 2 2013-09-19 09:24:30.000
LCEventLogger 2 2013-09-19 09:23:52.000
NonReferralGQ_1 2 2013-09-19 09:23:06.000
NonReferralGQ_2 2 2013-09-19 09:22:48.000
ApplyToJobFromTGAndVerifyFrom_A 3 2013-09-20 02:17:54.000
PostReqAndVerifyFrom_A 3 2013-09-20 01:47:33.000
PostReqAndVerifyFrom_B 3 2013-09-20 02:04:09.000
Verify_UploadResume 3 2013-09-19 12:21:49.000
ApplyToJobFromAndVerifyFrom_B 2 2013-09-19 03:24:67.000
ApplyToJobFromAndVerifyFrom_B 3 2013-09-20 02:23:05.000
在这里,我实际上应该只显示不同的名称和状态,其中如果一个名称的状态含有二是应只显示该行,否则它应该由max(dateended)
连最后的显示名称和状态组两条记录
ApplyToJobFromAndVerifyFrom_B 2 2013-09-19 03:24:67.000
ApplyToJobFromAndVerifyFrom_B 3 2013-09-20 02:23:05.000
也应该分组成一个最新的日期。
终于从我想要的名称,状态,dateended记录不与的maxDate
任何重复可以请你告诉我如何进行表..
我不知道你的意思。你能编辑你的问题以包含你想要的结果吗,所以我们可以看到它与你目前的尝试有什么不同? – IMSoP
*“...如果一个名称的状态包含2,它应该只显示该行。”*看起来这正是它现在正在做的事情。 *“...否则它应该显示名称和状态组由max(dateended)...”*它看起来正是它现在正在做的。 –
这是正确的吗? “如果名称没有状态2,则应显示其最后一个条目,否则应显示状态2条目。”如果是这样,如果每个名称有两个或两个以上的状态2条目呢?结果应该包含全部还是仅包含一个(每个名称)?如果一个,那么哪一个? –