我正在做一些功课,问题的一部分是这样问的:" 2004年12月开放的助攻名单"
我已经获得了大部分子查询以减少其他所需要的内容,但是我只是提出了一种方法,只能从12月和04年专门获得结果,无论如何当OpenDate是。我在查询中无法让OpenDate字段与DATEPART(月,x)很好地匹配,因为上面的限制与打开时无关。
以下是助手表。
CREATE TABLE Assists
(
AssistID INT IDENTITY NOT NULL PRIMARY KEY,
OpenDate DATE NOT NULL DEFAULT GETDATE(),
CloseDate DATE NULL,
ContactType VARCHAR(15) NOT NULL,
ReferralSource VARCHAR(60) NULL,
RefPhone VARCHAR(10) NULL,
RefConfidential BIT NULL,
RefFollowUpNeeded BIT NULL,
AssistType VARCHAR(55) NOT NULL,
SpecialistID INT NOT NULL
CONSTRAINT fk_Assists_Specialists FOREIGN KEY (SpecialistID) REFERENCES Specialists(SpecialistID),
ClientID INT NOT NULL
CONSTRAINT fk_Assists_Clients FOREIGN KEY (ClientID) REFERENCES Clients(ClientID),
CONSTRAINT ck_Assists_OpenDate CHECK (OpenDate <= GETDATE()),
CONSTRAINT ck_Assists_CloseDate CHECK (CloseDate <= GETDATE()),
CONSTRAINT ck_Assists_RefPhone CHECK (RefPhone LIKE REPLICATE('[0-9]',10)),
)
非常感谢任何帮助。
答案 0 :(得分:1)
我认为这些是您应该关注的条件:
OpenDate
在2004年12月或之前 AND CloseDate
是NULL
或在2004年12月或之后SELECT *
FROM Assists
WHERE OpenDate <= '20041231'
AND (CloseDate IS NULL OR CloseDate >= '20041201')