欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请宗师指点迷津-关于sql查询

更新时间: 2014-01-05 02:13:42 责任编辑: Author_N1

 

请大师指点迷津-关于sql查询

   有一张地铁乘客进出闸机的详细交易表,里面的重要字段有以下几个:

   交易时间、交易设备号、乘客卡号、交易类型(进出站区分)、票卡类型(有很多票种)、线路编号、交易站点等字段。


   现在想按照以下结果进行查询

乘客卡号、 票卡类型、 进站交易时间、 进站设备号、 进站站点、 出站交易时间、 出站设备号、 出站站点

   原始表乘客卡号是不唯一的,因为会出现一天有很多次进出站记录,所以要按照最准确的一进一出匹配查询,如果某一张卡的交易不完整,缺少进或出的记录,查询结果就把记录该字段(进或出)信息填“空”  
   
    谢谢

  
--参考方法--

with TB as
 (select 交易时间,
         交易设备号,
         乘客卡号,
         交易类型,
         票卡类型,
         线路编号,
         交易站点,
         lead(交易时间) over(order by 交易时间 nulls last) 下次时间,
         lead(交易类型) over(order by 交易时间 nulls last) 下次交易类型,
         lead(交易站点) over(order by 交易时间 nulls last) 下次交易地点,
         lead(交易设备号) over(order by 交易时间 nulls last) 下次交易设备号
    from 详细交易表)
select 乘客卡号,
       票卡类型,
       交易时间 进站交易时间,
       交易设备号 进站设备号,
       交易站点 进站站点,
       decode(下次交易类型, '出站', 下次时间, NULL) 出站交易时间,
       decode(下次交易类型, '出站', 交易设备号, NULL) 出站设备号,
       decode(下次交易类型, '出站', 下次交易地点, NULL) 出站站点
  from TB
 where 交易类型 = '进站'

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:13:42
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7201/
本文WWW.DOC100.NET DOC100.NET版权所有。