谁能帮我看看这个sql怎么写? - .NET技术 / ASP.NET
6f683c9f-995b-4d10-9ce1-e7bd670ce5f1 SQ20100504-001 ty 2010-05-04 00:00:00.000 测绘科
995b-4d10-9ce1-e7bd670ce5f1 SQ20100504-001 ty 2010-05-05 00:00:00.000 测绘科
ec5f0cb4-0652-4664-a71d-36ad1e8505fe SQ20100506-001 1 2010-05-05 00:00:00.000 技术部
ec5f0cb4-0652-4664-a71d-36ad1e8505fe SQ20100506-001 1 2010-05-06 00:00:00.000 技术部
ec5f0cb4-0652-4664-a71d-36ad1e8505fe SQ20100506-001 1 2010-05-07 00:00:00.000 技术部
我这里有五条数据如何通过sql语句将同一个项目名称中(ty那一列就是项目名称!)时间最小的那条数据保存取来,删掉最大时间的那条数据!
最后的结果如:
6f683c9f-995b-4d10-9ce1-e7bd670ce5f1 SQ20100504-001 ty 2010-05-04 00:00:00.000 测绘科
ec5f0cb4-0652-4664-a71d-36ad1e8505fe SQ20100506-001 1 2010-05-05 00:00:00.000 技术部
这个和去除重复数据是一个道理吧?
但是我要时间最小的
去重还是读取数据?
由于我时间不同所以去除重复项不管用查出来还是5条
select a.第一列,b.AA,b.BB,b.CC from 表 a right join
(select ty那一列 as AA,min(时间) as BB,XX科那一列 as CC from 表 group by ty那一列,XX科那一列) b
on a.ty那一列=b.AA and XXXXXXX
手写的,差不多是这个意思。话说你表结构都不给叫人怎么弄……
SQL code:
select * from table1 b where projectname in(select projectname,min(thetime) from table1 a group by projectname )c
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......
O O O O O O
|.......| |........| |.......|
| | |
O O ......