winform调用数据库时对内容的删选

qq_42161799 2018-07-10 01:03:39
1.表内第一列是编号,第二列是物品名称,第三列是时间,第四列是内容,,,,第一列和第二列会有很多相同的,唯一不同的就是时间,我想在datagridview中显示的只有最新的那一条。例如:
编号 物品 时间 内容
1 手机 13:00 A
1 手机 14:00 B
1 手机 15:00 C
2 电话 13:00 C
2 电话 14:00 E
2 电话 15:00 A
这样我只需要显示最新的那一条内容,即15:00时候的那一条。

2.在显示 (1 手机 15:00 C)(2 电话 15:00 A)这两条内容时,我还需要判断他内容是不是为A,是的话显示出来,不是的话就不显示
...全文
574 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
一丶叶知秋 2018-07-12
  • 打赏
  • 举报
回复
试试

select B.no,B.name,B.time,B.discription from
(
select no,name,MAX(time)as time from Table_1 group by no,name
) as A,Table_1 B
where B.discription!='A' and A.no=B.no and A.time=B.time and A.name=B.name;
奔放的热干面 2018-07-12
  • 打赏
  • 举报
回复
dataGridView1.Columns["时间"].Visible = false;
  • 打赏
  • 举报
回复
4楼正解 ,一句SQL的事
查询最新一条加个top 1 就行了
qq_42161799 2018-07-11
  • 打赏
  • 举报
回复
引用 8 楼 qq_37753824 的回复:
一句简单sql的事,就不能好好学学吗。
怎么写,,,select 编号, 物品, 内容, MAX(时间) from [Table] WHERE ID=117 然后对内容的判断加在哪里?
谁有我低调 2018-07-11
  • 打赏
  • 举报
回复


引用 14 楼 qq_42161799 的回复:
[quote=引用 12 楼 MSSQL23 的回复:]
select 编号, 物品, 内容, MAX(时间) from [Table] WHERE ID=117 and 内容='A'

谢谢哈,这个我已经了解了,现在主要还是排序有问题,怎么输出最新那一个,直接用MAX可以么,可是那个时间我又不想让他在datagridview中显示出来[/quote]
datagridview不绑定这个字段就行了
jinting2010 2018-07-11
  • 打赏
  • 举报
回复
试试

SELECT * FROM (
SELECT *,RANK() OVER(PARTITION BY 编号,物品 ORDER BY 时间) orderIndex
FROM [test]) t
WHERE t.orderIndex=1
qq_42161799 2018-07-11
  • 打赏
  • 举报
回复
引用 12 楼 MSSQL23 的回复:
select 编号, 物品, 内容, MAX(时间) from [Table] WHERE ID=117 and 内容='A'
谢谢哈,这个我已经了解了,现在主要还是排序有问题,怎么输出最新那一个,直接用MAX可以么,可是那个时间我又不想让他在datagridview中显示出来
qq_42161799 2018-07-11
  • 打赏
  • 举报
回复
引用 10 楼 kihkia 的回复:
4楼正解 ,一句SQL的事 查询最新一条加个top 1 就行了
1.我的时间是往下在排的,用top1,,,不就显示出来最早那一个了么,可我要的是最后一个就是最晚那一个 2.就算用top1也直接报错了没显示出来最早那一个,可能是因为我是好几张表关联在一起的?
                string sql = "select Number, name, Sta.Date, From, To, LName, FName from GA " +                  
                     " JOIN GT ON(G.GTId=GT.GTId) " +
                     " JOIN MA ON(MA.MAId=GT.MAId) " +
                     " JOIN LG ON(LG.GId=G.GId) " +
                     " JOIN L ON(LG.LId=L.LId) " +
                     " JOIN P ON(P.PId=L.BPId) " +
                     " JOIN Sta ON(Sta.Number=G.Number) " +
                     " where G.Number = '" + textBox1.Text + "'";
谁有我低调 2018-07-11
  • 打赏
  • 举报
回复
select 编号, 物品, 内容, MAX(时间) from [Table] WHERE ID=117 and 内容='A'
qq_42161799 2018-07-11
  • 打赏
  • 举报
回复
引用 10 楼 kihkia 的回复:
4楼正解 ,一句SQL的事 查询最新一条加个top 1 就行了
,,,,,就不能说的明白点么,select 编号, 物品, 内容, MAX(时间) from [Table] WHERE ID=117 然后对内容的判断加在哪里?
qq_37753824 2018-07-10
  • 打赏
  • 举报
回复
一句简单sql的事,就不能好好学学吗。
qq_42161799 2018-07-10
  • 打赏
  • 举报
回复
引用 6 楼 u011937354 的回复:
[quote=引用 5 楼 qq_42161799 的回复:] [quote=引用 4 楼 u011937354 的回复:] select 编号, 物品, MAX(时间) from [Table] WHERE 内容='A' GROUP BY 编号,物品 ORDER BY 编号 加上条件
我想显示的不是MAX.时间,是MAX时间这一条的内容,这样可以么?[/quote] 这句查询是 根据编号,内容分组 取时间最大的一条数据[/quote]emmmm,但是我得根据另一个ID号来查找,相当于select 编号, 物品, 内容, MAX(时间) from [Table] WHERE ID=117 这里内容要判断是A且时间是最新的一条才显示出来
u011937354 2018-07-10
  • 打赏
  • 举报
回复
引用 5 楼 qq_42161799 的回复:
[quote=引用 4 楼 u011937354 的回复:]
select 编号, 物品, MAX(时间) from [Table] WHERE 内容='A' GROUP BY 编号,物品 ORDER BY 编号

加上条件
我想显示的不是MAX.时间,是MAX时间这一条的内容,这样可以么?[/quote]

这句查询是 根据编号,内容分组 取时间最大的一条数据
qq_42161799 2018-07-10
  • 打赏
  • 举报
回复
引用 4 楼 u011937354 的回复:
select 编号, 物品, MAX(时间) from [Table] WHERE 内容='A' GROUP BY 编号,物品 ORDER BY 编号 加上条件
我想显示的不是MAX.时间,是MAX时间这一条的内容,这样可以么?
u011937354 2018-07-10
  • 打赏
  • 举报
回复
select 编号, 物品, MAX(时间) from [Table] WHERE 内容='A' GROUP BY 编号,物品 ORDER BY 编号

加上条件
u011937354 2018-07-10
  • 打赏
  • 举报
回复
select 编号, 物品, MAX(时间) from [Table] GROUP BY 编号,物品 ORDER BY 编号

这样?
qq_42161799 2018-07-10
  • 打赏
  • 举报
回复
emmmmm,怎么筛最新的那一个哇,而且这个数据库每天在变动的
  • 打赏
  • 举报
回复
绑定datagridview时把数据源筛选下,你不是都知道逻辑 了,就是处理datatable吧

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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