求教各位大神 怎么判断两行数据是否属于一类

bmbxhit 2018-07-10 06:01:08


如图示 想要实现的效果是如果卡号一致,根据字段“上车时间1”和下一行“下车时间1”,即上车时间1+1800<下车时间1,则认为是一次完整出行,那么就用本行的上车时间作为此次出行的上车时间,下一行的下车时间作为这一次出行的下车时间,距离是两次距离的和。如果卡号不一致 ,则认为是一次出行。
可以生成一个新表 就是保留字段为“卡号”,“上车时间”,“下车时间”,“距离”四个字段,

例如:第2/3行可以看为一次出行,则可以新生成一行
“卡号”,“上车时间”,“下车时间”,“距离”
1000751000001691 65700 67460 4426.31

求教各位大神应该用什么样的思路和函数?
...全文
224 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bmbxhit 2018-07-12
  • 打赏
  • 举报
回复
引用 5 楼 sinat_28984567 的回复:
[quote=引用 2 楼 bmbxhit 的回复:]
[quote=引用 1 楼 sinat_28984567 的回复:]
建议楼主给出测试数据和对应的结果,别贴图

好的 先谢谢
卡号 记录号 上车时间 交易日期 交易时间 线路号 车辆号 上车站 下车站 上车时 上车分 上车秒 下车时 下车分 下车秒 下车时1 上车时间1 下车时间1 上下行 运行时间 linelen speed
1000751000001691 4988166 20170605074000 20170605 075225 701 00017746 10 3 7 40 0 7 52 25 7 27600 28345 0 745 4109.86993408203 5.51660393836514
1000751000001691 4210815 20170605181500 20170605 183153 677 00012831 8 11 18 15 0 18 31 53 18 65700 66713 1 1013 2616.65008544922 2.58307017319765
1000751000001691 9050513 20170605183900 20170605 184420 973 00076216 10 13 18 39 0 18 44 20 18 67140 67460 1 320 1809.65997314453 5.65518741607666
1000751000001902 2180516 20170605093300 20170605 094609 515 00019815 22 17 9 33 0 9 46 9 9 34380 35169 0 789 2563.50006103516 3.24904950701541
1000751000001902 1993528 20170605170700 20170605 171704 515 00019817 17 22 17 7 0 17 17 4 17 61620 62224 1 604 3005.64996337891 4.97624166122336
1000751000002102 6798803 20170605124200 20170605 130513 413 00316492 5 1 12 42 0 13 5 13 13 45720 47113 0 1393 2192.13006591797 1.57367556778031
1000751000002118 15790782 20170605070600 20170605 072826 438 00021377 8 15 7 6 0 7 28 26 7 25560 26906 1 1346 6424.41003417969 4.7729643641751
1000751000002118 14666518 20170605073900 20170605 074521 331 00023317 20 23 7 39 0 7 45 21 7 27540 27921 1 381 1928.46994018555 5.06160089287545
1000751000002118 14638322 20170605093700 20170605 100646 594 00021558 1 13 9 37 0 10 6 46 10 34620 36406 1 1786 8881.19990539551 4.97267631881047
1000751000002295 3598269 20170605081800 20170605 083741 625 00018871 18 23 8 18 0 8 37 41 8 29880 31061 1 1181 5524.55004882813 4.67785778901619
1000751000002295 3680620 20170605125800 20170605 132939 387 00024556 9 19 12 58 0 13 29 39 13 46680 48579 1 1899 10566.8700256348 5.56443919201409
[/quote]
这个表结构……为啥时间不在一起呢,另外这些数据对应的结果是啥?[/quote]

主要是我没有找到发附件的地方 所以只能粘上去 所以显得有点乱
bmbxhit 2018-07-12
  • 打赏
  • 举报
回复
引用 4 楼 weixin_37983681 的回复:
[quote=引用 3 楼 shinger126 的回复:]
上车时,上车分,上车秒为什么不合并成一个字段?SQL2008起就有了time型数据

我也想说为什么不用time类型,用time的话上车下车应该能在同一行里面而且处理数据也比较方便。[/quote]
在同一行里 只是我不会在回复里发附件 只能粘上去 所以 显得乱 刚开始的导入的时候是vachar的类型 后面发现转不了datetime 所以干脆就每个字段摘出来一部分了
Chrisfrog 2018-07-12
  • 打赏
  • 举报
回复
做两个临时表分别存储第i行和第i+1行的数据,用ROW_NUMBER()获取行,循环获取计算就好了,记得每个循环的最后要清掉临时表的数据。
shinger126 2018-07-11
  • 打赏
  • 举报
回复
上车时,上车分,上车秒为什么不合并成一个字段?SQL2008起就有了time型数据
bmbxhit 2018-07-11
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
建议楼主给出测试数据和对应的结果,别贴图

好的 先谢谢
卡号 记录号 上车时间 交易日期 交易时间 线路号 车辆号 上车站 下车站 上车时 上车分 上车秒 下车时 下车分 下车秒 下车时1 上车时间1 下车时间1 上下行 运行时间 linelen speed
1000751000001691 4988166 20170605074000 20170605 075225 701 00017746 10 3 7 40 0 7 52 25 7 27600 28345 0 745 4109.86993408203 5.51660393836514
1000751000001691 4210815 20170605181500 20170605 183153 677 00012831 8 11 18 15 0 18 31 53 18 65700 66713 1 1013 2616.65008544922 2.58307017319765
1000751000001691 9050513 20170605183900 20170605 184420 973 00076216 10 13 18 39 0 18 44 20 18 67140 67460 1 320 1809.65997314453 5.65518741607666
1000751000001902 2180516 20170605093300 20170605 094609 515 00019815 22 17 9 33 0 9 46 9 9 34380 35169 0 789 2563.50006103516 3.24904950701541
1000751000001902 1993528 20170605170700 20170605 171704 515 00019817 17 22 17 7 0 17 17 4 17 61620 62224 1 604 3005.64996337891 4.97624166122336
1000751000002102 6798803 20170605124200 20170605 130513 413 00316492 5 1 12 42 0 13 5 13 13 45720 47113 0 1393 2192.13006591797 1.57367556778031
1000751000002118 15790782 20170605070600 20170605 072826 438 00021377 8 15 7 6 0 7 28 26 7 25560 26906 1 1346 6424.41003417969 4.7729643641751
1000751000002118 14666518 20170605073900 20170605 074521 331 00023317 20 23 7 39 0 7 45 21 7 27540 27921 1 381 1928.46994018555 5.06160089287545
1000751000002118 14638322 20170605093700 20170605 100646 594 00021558 1 13 9 37 0 10 6 46 10 34620 36406 1 1786 8881.19990539551 4.97267631881047
1000751000002295 3598269 20170605081800 20170605 083741 625 00018871 18 23 8 18 0 8 37 41 8 29880 31061 1 1181 5524.55004882813 4.67785778901619
1000751000002295 3680620 20170605125800 20170605 132939 387 00024556 9 19 12 58 0 13 29 39 13 46680 48579 1 1899 10566.8700256348 5.56443919201409
二月十六 版主 2018-07-11
  • 打赏
  • 举报
回复
引用 2 楼 bmbxhit 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:]
建议楼主给出测试数据和对应的结果,别贴图

好的 先谢谢
卡号 记录号 上车时间 交易日期 交易时间 线路号 车辆号 上车站 下车站 上车时 上车分 上车秒 下车时 下车分 下车秒 下车时1 上车时间1 下车时间1 上下行 运行时间 linelen speed
1000751000001691 4988166 20170605074000 20170605 075225 701 00017746 10 3 7 40 0 7 52 25 7 27600 28345 0 745 4109.86993408203 5.51660393836514
1000751000001691 4210815 20170605181500 20170605 183153 677 00012831 8 11 18 15 0 18 31 53 18 65700 66713 1 1013 2616.65008544922 2.58307017319765
1000751000001691 9050513 20170605183900 20170605 184420 973 00076216 10 13 18 39 0 18 44 20 18 67140 67460 1 320 1809.65997314453 5.65518741607666
1000751000001902 2180516 20170605093300 20170605 094609 515 00019815 22 17 9 33 0 9 46 9 9 34380 35169 0 789 2563.50006103516 3.24904950701541
1000751000001902 1993528 20170605170700 20170605 171704 515 00019817 17 22 17 7 0 17 17 4 17 61620 62224 1 604 3005.64996337891 4.97624166122336
1000751000002102 6798803 20170605124200 20170605 130513 413 00316492 5 1 12 42 0 13 5 13 13 45720 47113 0 1393 2192.13006591797 1.57367556778031
1000751000002118 15790782 20170605070600 20170605 072826 438 00021377 8 15 7 6 0 7 28 26 7 25560 26906 1 1346 6424.41003417969 4.7729643641751
1000751000002118 14666518 20170605073900 20170605 074521 331 00023317 20 23 7 39 0 7 45 21 7 27540 27921 1 381 1928.46994018555 5.06160089287545
1000751000002118 14638322 20170605093700 20170605 100646 594 00021558 1 13 9 37 0 10 6 46 10 34620 36406 1 1786 8881.19990539551 4.97267631881047
1000751000002295 3598269 20170605081800 20170605 083741 625 00018871 18 23 8 18 0 8 37 41 8 29880 31061 1 1181 5524.55004882813 4.67785778901619
1000751000002295 3680620 20170605125800 20170605 132939 387 00024556 9 19 12 58 0 13 29 39 13 46680 48579 1 1899 10566.8700256348 5.56443919201409
[/quote]
这个表结构……为啥时间不在一起呢,另外这些数据对应的结果是啥?
二月十六 版主 2018-07-11
  • 打赏
  • 举报
回复
建议楼主给出测试数据和对应的结果,别贴图
Chrisfrog 2018-07-11
  • 打赏
  • 举报
回复
引用 3 楼 shinger126 的回复:
上车时,上车分,上车秒为什么不合并成一个字段?SQL2008起就有了time型数据

我也想说为什么不用time类型,用time的话上车下车应该能在同一行里面而且处理数据也比较方便。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧