求一句SQL - MS-SQL Server / 基础类
姓名 日期 值
张三 2009-1-1 10
张三 2009-2-1 100
李四 2008-12-1 22
李四 2009-1-1 135
我想获得所有人 日期最小的值 并合计
即张三的10加上李四的22 获得最后结果是32
SQL code:
select 姓名,min(日期) 日期,合计=sum(值) from tb group by 姓名
SQL code:
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([姓名] [nvarchar](10),[日期] [datetime],[值] [int])
INSERT INTO [tb]
SELECT '张三','2009-1-1','10' UNION ALL
SELECT '张三','2009-2-1','100' UNION ALL
SELECT '李四','2008-12-1','22' UNION ALL
SELECT '李四','2009-1-1','135'
-->SQL查询如下:
SELECT 姓名,MIN(日期) 日期,合计=SUM(值) from tb GROUP BY 姓名
/*
姓名 日期 合计
---------- ----------------------- -----------
李四 2008-12-01 00:00:00.000 157
张三 2009-01-01 00:00:00.000 110
(2 行受影响)
*/
SQL code:
select sum(值) from table_name a join (select 姓名,min(日期) 日期 from table_name group by 姓名) b on a.姓名=b.姓名 and a.日期=b.日期
我要的结果是 所有人日期最小
相关问答:
执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
需求如下:
学院 academy(aid,aname)
班级 class(cid,cname,aid)
学生 stu(sid,sname,aid,cid)
住宿区 region(rid,rname)
宿舍楼 build(bid,rid,bnote) bnote是‘男’/‘女’
宿舍 dorm(did,rid,bid,bedn ......
表数据
COL1 COL2 COL2 COL4 COL5
----------------------------------------------------------------------------------------------
2010-05-05 00:00 ......
通过NAME字段条件查询一个数据表,假设我有100个姓名,有以下两个方法,
方法1:
把100个Name 组成一个SQL语句,比如 Select * from tmp_table where Name='张三' or Name ='李四' Or ...Or Name='第一百个姓名'
......