我现有一个表,其中有两个字段,如下:字段名 类型
name varchar[50]
date datetime表中数据如下:name date
A 2003-05-08
B 2003-07-02
C 2003-09-03
A 2003-07-05
B 2003-03-03现在需要写一条SQL语句,让它返回下表:
name date
A 2003-07-05
B 2003-07-02
C 2003-09-03也就是说,让它返回所有数据,但如果 name 字段有重复的,则只返回相对应的 date 字段中数据最大的一个
这条SQL语句应该怎么写?
name varchar[50]
date datetime表中数据如下:name date
A 2003-05-08
B 2003-07-02
C 2003-09-03
A 2003-07-05
B 2003-03-03现在需要写一条SQL语句,让它返回下表:
name date
A 2003-07-05
B 2003-07-02
C 2003-09-03也就是说,让它返回所有数据,但如果 name 字段有重复的,则只返回相对应的 date 字段中数据最大的一个
这条SQL语句应该怎么写?
解决方案 »
- OSI process book
- 请教大家一个使用WINSOCK传送数据过程中,数据转换的问题 在线等,请高手帮忙
- 拷贝大文件时,怎么样不让用户觉得是死机了
- 打印出现难题了
- 程序员新手应该从何开始?
- 关于VB导入EXCEL问题(含源码)
- 如何在VB6里用ADO调用执行SQLSERVER上的已有存储过程
- 在VB6中如何使用反射得到类的属性列表以及方法列表?
- 请有经验的vb高手入内
- command的结果给datagrid为何出错?
- 重大问题:FRM2.0中的ComboBox当属于一个frmame1的控件时,按向下方向键,它并不下移选择内容内容而是移到下个焦点!急急急!
- 程序中要访问datagrid中具体某行某列的数据,如何写代码?
from tablename
group by [name]注意,尽量避免用保留字作为字段名。
请给出SQL语句,谢谢~
from tablename a join
( select [name],
max(date) as maxdate
from tablename
group by [name]
) b
on a.name=b.anme and a.date=b.maxdate
name date other1 other2 other3
A 2003-05-08 ABC DEF 123
B 2003-07-02 kkk sss 888
C 2003-09-03 asdf 9876 1212
A 2003-07-05 sss kkk ddd
B 2003-03-03 456 000 wqq返回表为:
name date other1 other2 other3
A 2003-07-05 sss kkk ddd
B 2003-07-02 kkk sss 888
C 2003-09-03 asdf 9876 1212如何写SQL语句?
具体看看其它字段,要和的就合(sum),要最小就用min,要分组就加在Group by 后面用“,”分开
具体看看其它字段,要和的就合(sum),要最小就用min,要分组就加在Group by 后面用“,”分开