陌上清云 2021-11-05 13:50 采纳率: 33.3%
浏览 53
已结题

关于#sqlserver#的问题:处理表数据

在 MSSQL中有一张表,如下:

img


表一

我想要做到如下效果:

img


图二

用SQL 语句与C#语法都可以,求个思路
表一中的数据是写入数据库的,我想要做的是从数据库中读取表一中的数据,用C#语法或者SQL 语句将表一中的数据根据时间和ID逐一遍历写入一个list集合,集合字段如图二,想过用 if else 但觉得太过繁琐有没有更合适的方法?

软件版本:SQL server 2019 vs2019 一个winform程序

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-11-05 16:57
    关注

    用row_number排名下得到相同id的2个不同排名表自连接下
    数据

    img


    查询结果

    img

    
    select t1.id,t1.数据 as 历史版本数据1,t1.生产时间 as 数据产生时间
    ,t2.数据 as 历史版本数据2,t2.生产时间 as 数据产生时间
    ,getdate() as 对比时间
    ,case when t1.数据=t2.数据 then '一致' else '不一致' end as 备注
    
    from(
    select id,数据,生产时间 ,row_number() over(partition by id order by 生产时间 asc) rn from table_1)t1 ,
    (select id,数据,生产时间 ,row_number() over(partition by id order by 生产时间 desc) rn from table_1)t2
    where t1.id=t2.id and t1.rn=1 and t2.rn=1
    

    有帮助麻烦点下【采纳该答案】,谢谢~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 修改了问题 11月5日
  • 创建了问题 11月5日

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现