求一句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.日期
我要的结果是 所有人日期最小
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
请教高手:
以下是数据库中的三条记录,英文为字段名称
id planname TaskBeginTime Status
329 2010年03 ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
现在有一个部门表dept(部门名称,部门号。。)有一个人员表emp(姓名,人员编号,职位,薪资,部门)
emp表中的内容是这样的:
a 1 工程师 3000 软件部
b 2 普通员工 2000 硬件部
c 3 工程师 4000 硬件部
d ......