2 qq 32416519 qq_32416519 于 2016.05.09 20:46 提问

C#查询出最新记录,显示在网页上

SQL数据库中有这么一个表:
序号 时间 节点 温度 湿度

1 07:05:18 A 14.2 3.8

2 08:15:23 B 12.7 4.6
3 09:27:43 C 13.9 5.7
4 12:58:09 A 15.8 2.6
5 13:18:06 B 16.6 2.7
VS2010中用C#编的网页,希望查询数据库后 得到如下表格显示在网页上
节点 时间 温度 湿度
A 12:58:09 15.8 2.6
B 13:18:06 16.6 2.7
C 09:27:43 13.9 5.7

就是按照时间,查出节点的最新记录,然后一块显示出来

8个回答

herozhangbz
herozhangbz   2016.05.11 09:27
已采纳

图片说明
你在后面加上where rw=1;就能筛选出时间最近的记录

qq_32416519
qq_32416519 虽然没有完全实现,但还是谢谢你,分给你了
大约 2 年之前 回复
qq_32416519
qq_32416519 我知道了,得分开写,研究研究
大约 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.05.09 20:57

select 节点, max(时间), max(温度), max(湿度) from 表 group by 节点

qq_32416519
qq_32416519 不能这样啊,后面的数据我是随意编的,实际上不是这样,字段很多,我只是举例而已。。。。。。。
大约 2 年之前 回复
qq_32416519
qq_32416519   2016.05.09 21:01

有没有给个想法,实现选出不同节点的最新条记录,然后这不同节点的记录放到一个表里,显示在网页上

yicp123
yicp123   2016.05.10 10:18

select 节点, max(时间), 温度, 湿度 from 表 group by 节点

有兴趣可以看看GROUP BY 的用法以及如何优化GROUP BY http://www.data.5helpyou.com/article237.html

herozhangbz
herozhangbz   2016.05.10 13:11
     select * from (select ROW_NUMBER() over(partition by 节点 order by时间 desc) rw,t_Szxxjlb.* from 表) where rw=1

按节点分组,时间逆序排序,取第一行记录

herozhangbz
herozhangbz 我这个语句是组合的,( select ROW_NUMBER() over(partition by 节点 order by 时间 desc) rw,表.* from 表)这条语句相当于在你的表加上一个rw字段,用于记录按照节点分组后当前节点的所有记录。加上这个列的目的是为了筛选rw=1就是第一行记录,因为是按照时间逆序排序所以是最新的时间。这条SQL语句在Oracle数据库查询的时候没用任何问题。你试试看能不能查询到。外面那层就是选出你想要的字段也没有问题。
大约 2 年之前 回复
herozhangbz
herozhangbz 不是让你改成你自己的表么,这是我自己的表。我之前用过的语句,应该没有语法错误
大约 2 年之前 回复
qq_32416519
qq_32416519 我就是想的 按节点分组,时间逆序排序,top 1取一条记录,然而并没有用,改了好多次,快疯了
大约 2 年之前 回复
qq_32416519
qq_32416519 回复herozhangbz: t_Szxxjlb.* from 表 后面这个还是查询的表啊,不对吧,总是提示from附近有语法错误
大约 2 年之前 回复
herozhangbz
herozhangbz 把那个t_Szxxjlb.换成你的表,漏改了
大约 2 年之前 回复
qq_32416519
qq_32416519   2016.05.11 16:38

图片说明
我的总是报错,上面是在SQL数据库里面查询的时候‘
下面是在VS里面运行的时候
图片说明
@herozhangbz
我去学习下这个函数

herozhangbz
herozhangbz 外面那层不需要加了,select row_number()(……)rw,(表里面需要的字段拎出来就行了) from 表 where rw=1.
大约 2 年之前 回复
qq_32416519
qq_32416519 回复herozhangbz: 我先执行select ROW_NUMBER() over(partition by 节点 order by时间 desc) rw,t_Szxxjlb.* from 表这一句就没有错,加上外部的语句就报错,挺奇怪的
大约 2 年之前 回复
herozhangbz
herozhangbz 嗯嗯,你的是SQLserver数据库,这个函数是Oracle的分析函数,某些强大的函数SQLserver是没有的。
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.05.09 20:52

13.01.17 C# Linq 查询最新的记录
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq_32416519
qq_32416519   2016.05.09 20:55

我现在可以找出不同节点显示在网页上,但查出的只是这一个字段,怎么把最新记录的一条信息都现实啊,求大神指教

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mysql 查询最新第一条记录问题总结
mysql查询表中最新的一条记录总结 在使用数据库的时候,经常会遇到如下问题: 比如有一张表A,字段和数据如下: 姓名(name) 身份证号(唯一标识)(id) 购买产品(pro) 价格(price) 数量(count) 购买时间(time) 张1 111111 Computer 1600 元 5 2018-03-03 张1...
mysql如何查询最新的20条记录
解决了一个问题,记录一下,想要用mysql查询最新的20条记录,查了资料 有这种写法的sql: SELECT TOP 20 * FROM components order by id desc 但是其实mysql里没有top这种写法,正确的写法应该是: select * from components order by id desc LIMIT 25
查询:一段时间内;最新的纪录
select *from 表名where 客户编号+convert(varchar,日期) in(select 客户编号+convert(varchar,max(日期)) from 表名where  日期>=日期1 and 日期group by 客户编号) ; 
mysql5.7分组查询group by,分组查询并且显示每组时间最新的一条记录
SELECT ** FROM t_group_album a LEFT JOIN ( SELECT f_aid, COUNT(f_aid) pictureNum, group_concat( f_image_url ORDER BY f_update_time DESC ) f_image_url FROM t_group_picture GROUP BY f_ai
关于SQL Server只查出日期最新记录
上午一同事问我一问题:有一个表中存有卡号和此卡的所有消费记录,怎么用一句简单的sql语句取出每张卡的最新一条记录然后用卡号去和别的表关联? 表示例(tb): cardNO               CDate                        money       ...(其他字段) 001                      2012-01-01
C#里获取相关日期 例如做报表时某段时间(如本年度、本季度、本月、本周、上周等)
//大家在做报表或查询的时候都会有给用户预设一些可选的日期范围(如上图) //如本年度销售额、本季度利润、本月新增客户 //C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了 //今天 DateTime.Now.Date.ToShortDateString();
oracle查询分组数据中的最后一条数据和每组的数量
实现代码:select tmp.*,(select count(*) from tb_user where id = tmp.id) quantity from( select row_num() over(partition by user.id order by a.name) rn, user.id id, user.name name, user.passwo
查询最近插入的一条数据的主键
SELECT LAST_INSERT_ID() 需要结合事物使用 mybatis配置文件         如果是after表示我们是需要再insert之后再执行   keyColumn :数据库的表字段   keyProperty  表示我们pojo对象的属性字段   -->     SELECT LAST_INSERT_ID()       insert i
C#中的dataGridView1如何实现上一条,下一条,首记录,尾记录按钮?
首记录:this.dataGridView1.CurrentCell = this.dataGridView1[this.dataGridView1.CurrentCell.ColumnIndex, 0]; 上一记录:if (this.dataGridView1.CurrentCell.RowIndex > 0) { this.dataGr
数据库的一个表里筛选出每一人的时间最新的一条记录
-- 方法1 select a.*  from table1 a  where not exists(select 1                   from table1 b                   where b.name=a.name and b.gdtime>a.gdtime) -- 方法2 select a.*  from table1 a