CREATE TABLE NewStatHistory (
StatHistoryID uniqueidentifier PRIMARY KEY NOT NULL,
DateEntered dateTime NOT NULL,
DateApplies dateTime NOT NULL,
WhoEnteredID uniqueIdentifier NOT NULL,
PostingID uniqueIdentifier NULL,
EnteredValue decimal(19,5) NOT NULL,
StatID uniqueIdentifier NOT NULL,
StatStatus int NOT NULL,
Notes varchar(500) NULL,
CampusID uniqueidentifier NOT NULL,
IsTarget bit NOT NULL DEFAULT 0
)
我需要为每个“DateApplys”提取最近输入的值。
SELECT NewStatHistory.*
FROM NewStatHistory
INNER JOIN (
SELECT MAX(DateEntered) entered, statID, DateApplies
FROM NewStatHistory
WHERE StatID = @statID
AND campusID = @campusID
AND IsTarget = 0
GROUP BY DateApplies, statID
) summary
ON summary.entered = newstathistory.dateEntered AND
summary.statID = newStatHistory.statID AND
summary.DateApplies = newStatHistory.DateApplies
WHERE NewStatHistory.StatID = @statID AND
IsTarget = 0 AND
campusID = @campusID
ORDER BY NewStatHistory.DateApplies DESC
就索引而言,在SqlServer上,我只索引了主键。在SQLite上,我只尝试了主键,但后来添加了其他几个列,但无济于事。