我被困在这个问题上很长时间了。我不知道为什么我的卡表替换一直是0。
问了我朋友的帮助,他们告诉我这与加入牌桌有关。
QQn:对于给定时间段(包括两个给定日期),例如 2002 年 12 月 1 日至 2003 年 7 月 31 日,找出在指定时间段内至少拥有一张 EZ 链接卡的人的集合。
对于集合中的每个人,列出
(i) 所有者身份证,
(ii) 他/她在此期间发行的卡片总数,
(iii) 所有者仅对在给定期间发行的卡进行的换卡总数(截至当前日期)。
按所有者身份证的升序列出您的结果。
例如,人 S1111111 有 5 张卡 C1(2001 年 1 月 2 日发行)、C2(2002 年 12 月 11 日发行)、C3(2003 年 7 月 20 日发行,作为 C1 的替代品)、C4(2003 年 7 月 21 日作为替代品发行)用于 C2)和 C5(于 2012 年 8 月 2 日发布,作为 C4 的替代品)。
我已经解决了第一部分和第二部分,但无法解决第三部分。
这是我的查询:
create table card
(
CardID int not null primary key,
OwnerNRIC char(9),
IssuedDcardate date,
StoredValue decimal (5,2),
OldCardID int,
constraint card_fk foreign key (OldCardID) references card(CardID)
);
SELECT ownerNRIC AS NRIC,
COUNT(ownerNRIC) AS Total_Cards_Issued_during_Period,
COUNT(OldCardID) AS Total_Replacement_till_date_for_cards_issued_during_Period
FROM card
WHERE IssuedDcardate BETWEEN '2002-12-01' AND '2003-07-31'
GROUP BY ownerNRIC;