我昨天發現了一個問題,無論是我的表格設計還是我從中提取數據的查詢,我都需要一些關於如何處理和解決問題的指導/建議。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
所有這一切工作正常。該表每天約有300k條記錄總記錄,其中包括約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是正確的。但是愚蠢的我忘記了他們可以搜索前幾天的數據,所以我的DayCount自PostDate以來每天都會增加。
我在尋找有關如何解決此問題的建議。有沒有辦法確定正確的日期?
你有一些增加DayCount的過程? – n8wrl 2011-04-14 11:25:26
是的,我有一個運行存儲過程執行更新的早晨工作。 – Taryn 2011-04-14 11:28:35