Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 自行特定日期以来聚合查询中的事件计数_Sql_Sql Server 2008 - Fatal编程技术网

Sql 自行特定日期以来聚合查询中的事件计数

Sql 自行特定日期以来聚合查询中的事件计数,sql,sql-server-2008,Sql,Sql Server 2008,我需要使用SQL Server 2008按目标分析射击、命中和事件的数量。如果射门击中目标,则有发生事件的机会。我想知道上次比赛的日期,以及自上次比赛以来有多少次射中目标 我的输入表有点像这样: TargetList Site_Code Target_Code WEIGHT Client SiteA 00001 1 ClientName SiteA 00002 1 ClientName SiteA 00003

我需要使用SQL Server 2008按目标分析射击、命中和事件的数量。如果射门击中目标,则有发生事件的机会。我想知道上次比赛的日期,以及自上次比赛以来有多少次射中目标

我的输入表有点像这样:

TargetList
Site_Code   Target_Code WEIGHT Client
SiteA       00001       1      ClientName
SiteA       00002       1      ClientName
SiteA       00003       1      ClientName
SiteA       00004       1      ClientName

Attempts
ID         Start_Time               Client      Target_Code
ID-0001    2017-01-24 01:35:30.000  ClientName  00001
ID-0002    2017-01-24 02:35:30.000  ClientName  00001
ID-0003    2017-01-24 03:35:30.000  ClientName  00001
ID-0004    2017-01-24 04:35:30.000  ClientName  00001
ID-0005    2017-01-24 05:35:30.000  ClientName  00001
ID-0006    2017-01-24 06:35:30.000  ClientName  00001
ID-0007    2017-01-24 07:35:30.000  ClientName  00001
ID-0008    2017-01-24 08:35:30.000  ClientName  00001
ID-0009    2017-01-24 09:35:30.000  ClientName  00001
ID-0010    2017-01-24 10:35:30.000  ClientName  00001
ID-0011    2017-01-24 11:35:30.000  ClientName  00001
ID-0012    2017-01-24 12:35:30.000  ClientName  00001

Hits
ID      AttemptID    Datetime                 ClientName   TargetCode  HitType
HT-0001 ID-0002      2017-01-24 02:35:30.000  ClientName   00001       Z5
HT-0002 ID-0003      2017-01-24 03:35:30.000  ClientName   00001       A1
HT-0003 ID-0004      2017-01-24 04:35:30.000  ClientName   00001       B5
HT-0004 ID-0006      2017-01-24 06:35:30.000  ClientName   00001       Z5
--Most recent Event below
HT-0005 ID-0008      2017-01-24 16:35:30.000  ClientName   00001       Z5
--4 Hits since the last Z5 event
HT-0006 ID-0009      2017-01-24 09:35:30.000  ClientName   00001       A1
HT-0007 ID-0010      2017-01-24 10:35:30.000  ClientName   00001       A1
HT-0008 ID-0011      2017-01-24 11:35:30.000  ClientName   00001       A1
HT-0009 ID-0012      2017-01-24 12:35:30.000  ClientName   00001       A1
以及我的预期产出:

SiteCode    TargetCode    CountOfAttempts    CountofHits    LastEvent                   HitsSinceLastEvent
SiteA       00001         12                 9              2017-01-24 16:35:30.000   4
到目前为止,我的问题是:

select bp.Site_Code 'Site'
    , bp.Target_Code 'Target'
    , COUNT(ca.id) 'Count of Attempts'
    , COUNT(htt.id) 'Count of Hits'
    , lst.[Last Event] 'Last Event'

from (select Site_Code, Target_Code
        from TargetList t
        where t.WEIGHT > 0 
            and Client = 'ClientName') as bp 

    left join Attempts ca on bp.Target_Code = ca.Target_Code and ca.START_TIME > '20170130' and ca.Client = 'ClientName'

    Left join HitInformation htt on htt.Attemptid = ca.id

    left join (select ht.TargetCode 'Target'
                , max(ht.datetime) 'Last Event' 
            from HitInformation ht 
            where rc.Client = 'ClientName' 
                and ht.DATETIME > '20170101' 
                and ht.HitType = 'Z5' 
            group by ht.TargetCode
                ) as lst on lst.TargetCode= bp.Target_Code

group by bp.Site_Code, bp.Target_Code, lst.[Last Event]
order by COUNT(ht.id)desc
我使用了一个子查询来确定Z5HIT的最后一个实例,但我很难得到自上次事件以来的点击数

我在谷歌上的努力包括“查找自事件sql server以来的总计”和“按行特定日期sql server计算的总计”,但我没有找到任何相关内容


我提前感谢您提供的任何帮助。

上次点击后为什么会有点击?“我不明白。”vkp为这句话道歉。目标可以被多次击中。每次被击中,都有发生事件的机会。事件将在目标生命周期内多次发生。我想知道距离上次事件有多长时间了,有多少次点击没有触发事件。输出名称中已更正错误。