首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法获取更换卡

问无法获取更换卡
EN

Stack Overflow用户
提问于 2013-03-22 20:57:35
回答 1查看 47关注 0票数 1

我被困在这里很长一段时间了。我不知道为什么我对牌桌的替换一直是0。

问我的朋友的帮助,他们告诉我,这与加入牌桌有关。

QQn:对于给定的时间段(包括两个给定日期),例如2002年12月1日到2003年7月31日,找出在指定时间段内至少有一张EZ连接卡的人的集合。

对于集合中的每个人,列出

(i)拥有人NRIC,

(ii)该人在该段期间共发出多少张储值卡;

(iii)车主仅就在指定期间内发出的卡更换卡的总次数(截至当前日期)。

按照所有者NRIC的升序列出您的结果。

例如,person 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的替代品)。

我已经解决了第一部分和第二部分,但不能解决第三部分。

下面是我的问题:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2013-03-22 21:09:41

获取此信息的一种方法是使用子查询。子查询通过旧的卡id汇总信息,然后将其连接回:

代码语言:javascript
复制
select ownerNRIC AS NRIC,
       COUNT(ownerNRIC) AS Total_Cards_Issued_during_Period,
       NumNewCards
from card c left outer join
     (select oldcardid, count(*) as numNewCards
      from card
      group by oldcardid
     ) oc
     on oc.oldcardId = c.cardid
WHERE IssuedDcardate BETWEEN '2002-12-01' AND '2003-07-31' 
group by ownerNRIC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15570928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档