sql怎么只查询出日期第二大的记录啊 表名book 字段比如 bookname ,date 望指点啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql怎么只查询出日期第二大的记录啊 表名book 字段比如 bookname ,date 望指点啊相关的知识,希望对你有一定的参考价值。

参考技术A SELECT *
FROM (SELECT b.*
FROM (SELECT *
FROM (SELECT *
FROM book
ORDER BY date1 DESC)
WHERE ROWNUM = 1) a,
book b
WHERE a.bookname <> b.bookname
ORDER BY b.date1 DESC)
WHERE ROWNUM = 1
参考技术B select t1.* from table t1,(
select top 1 date from table where date not in (select top 1 date from table order by date desc ) order by date desc) t2
where t1.date=t2.date
参考技术C order by date desc limit 1,1

mysql里面这么写就行了。追问

sql 里貌似不行啊……

追答

sql里面得用top ,然后再反向top ,总之很郁闷

参考技术D select top 1 * from
(select top 2 * from table order by date desc)
order by date

DataGridView怎么做条件查询啊

RT,我DataGridView绑定了一个Access数据库的一个只有名字性别的表,然后又做了一个combobox里面写的"男""女",还做了一个Button,我希望选择男或女之后按下Button,datagridview上只显示对应性别的结果

第一:改变DataGridView的绑定数据源,可以是datatable,也可以是dataset第二:在从数据库中查找出数据放入到datatable中或dataset中,sql语句如下select * from [表名] where [性别] = '查询条件' (这里查询条件由combobox中获得,男/女)第三:在button按钮按下后,执行sql查询语句,获得查询结果,放入datatable或dataset中然后:DataGridView.DataSource = [datatable];
DataGridView.DataBind();
参考技术A #region 返回一个DataTable类型的数据集
/// <summary>
/// 返回一个DataTable类型的数据集
/// </summary>
/// <param name="strsql">sql语句</param>
/// <param name="mydt">DataTable类型的对象</param>
public void getDataTable(string strsql,ref DataTable mydt)

SQL = "execSQL: " + strsql;
MySqlDataAdapter myDA = new MySqlDataAdapter(strsql, Connect);
try

Connect.Open();
myDA.Fill(mydt);
Connect.Close();

catch(System.Exception e)

//errorMsg = e.Message;
Connect.Close();
//showDBMsg(errorMsg + SQL);

finally

myDA.Dispose();


#endregion看我上面这个函数,参数一个是sql 语句,一个是datatable的引用你把sql语句和datatable这两个参数传进去就可以了,比如这样string sql1 = "select * from ......."DataTable dt1 = new DataTable(); getDataTable(sql1, ref dt1);
参考技术B easydatagridview绑定数据库?你的意思是用bindingsource绑定?如果是bindingsource绑定的,那最容易实现用filter Dim strtype As String
strtype = "列名"
Me.bindingsource1.Filter = strtype & " ='" & combobox.Text & "'" 不然就直接在datagridview里面去过滤删除。 If Me.txtSearch.Text <> "" Then For i As Integer = 0 To datagridview1.Rows.Count - 1
Dim strSearch, strColValue As String'搜索的内容由txtSearch(textbox)给出
strSearch = Me.txtSearch.Text'对应列名
strColValue = datagridview1.Rows(i).Cells("colName").Value.ToString
If strColValue.Contains(strSearch) Then'这里是标记符合条件的内容标注为红色,你改成删除代码,这个不需要再问了吧?
datagridview1.Rows(i).Cells("colName").Style.ForeColor = Color.Red
datagridview1.CurrentCell = dgvSupplier(1, i)
End If
Next
Else
Exit Sub
End If 上面两个我项目中的实例,修修改改肯定可以用
参考技术C 。。。。这个控件不是绑定数据源吗?

以上是关于sql怎么只查询出日期第二大的记录啊 表名book 字段比如 bookname ,date 望指点啊的主要内容,如果未能解决你的问题,请参考以下文章

求sql语句,只修改重复数据中的一条记录

如何在数据库中查询出重复记录

sqlserver 2008中查找限定行数据

SQL 中怎么根据出生日期算出年龄 然后用年龄查询

sql 查询每个月的记录数量

SQL查询每月每天的前两条数据....