TSQL确定正确的日期
|
昨天我发现我的表设计或从中提取数据的查询存在问题,我需要一些有关如何继续解决问题的指导/建议。
我的表如下:
CREATE TABLE
[DT].[CountTotals](
[Acct] [varchar](8) NOT NULL,
[TCount] [smallint] NOT NULL ,
[TDate] [smalldatetime] NOT NULL,
[PostDate] [smalldatetime] NOT NULL ,
[DayCount] [tinyint] NULL ,
[AggCount] [smallint] NULL ,
[AggNumber] [numeric](10, 0) NULL,
[IsReadyToArchive] [bit] NOT NULL
)
我使用以下视图提取此数据:
CREATE VIEW [DT].[vwGetCountHistory]
AS
SELECT
C.Acct, C.TCount, C.TDate, C.PostDate
, C.DayCount, C.AggCount, C.AggNumber
FROM DT.CountTotals C
UNION
SELECT
AC.Acct, AC.TCount, AC.TDate, AC.PostDate
, AC.DayCount, AC.AggCount, AC.AggNumber
FROM ARCHIVE.DTA.CountTotals AC
所有这些都很好。该表总共有30万条记录,每天大约有5000条新记录添加到记录中,而PostDate是记录添加的日期。我的问题来自字段DayCount-该字段在表中的每一天都增加1,直到PostDate is < GetDate()-90
。我的问题是在以下查询中:
SELECT
Acct
, SUM(AggCount) AS SumofAggCount
FROM DT.vwGetCountHistory
WHERE (DayCount <= 5)
AND
(
PostDate >= @BusinessDate - 90
AND PostDate <= @BusinessDate
)
GROUP BY Acct
HAVING (SUM(AggCount) >= 4)
如果我要搜索当前日期,则此查询效果很好,因为DayCount正确。但是愚蠢的我忘记了他们可以搜索前几天的数据,因此自PostDate以来,我的DayCount每天都会增加。
我正在寻找有关如何解决此问题的建议。有没有办法确定正确的日计数?
没有找到相关结果
已邀请:
2 个回复
蕉衫
死搭胯
为此,我们将1加到条件上,以便DayCount <= 6,因为昨天的合格记录现在的DayCount为6。