一个用户表,一个组队表,怎样得到每个人的得到星级数?
user用户表id name
1 张三
2 李四
3 王五
team 组队表
uid start data
2 1 2012/10
2 3 2012/09
2 4 2012/08
3 1 2012/10
result想要的结果如下:
uname sumstart laststart
李四 8 1
张三 0 0
王五 1 0
怎样得到张三、李四、王五每个人某个时间得到总星数以及上次得到的星数 --------------------编程问答-------------------- 存储过程也可以,现在的情况对我来说的难点是,查出来的重复情况我已经解决了。但是,我要得到上次累计星数,上次星数,总星数。我的上次累计星数不能根据人的不同而改变。我的语句如下:
string sql=sting.Format(@"SELECT B.STNM,
(SELECT start FROM team WHERE TM >'{0}' AND TM<'{1}')AS Ystart ,
(SELECT sum(start) FROM team WHERE TM <='{1}') AS YSUM,SUM(start)as SUM
FROM team A, user B WHERE A.uid=B.id AND TM<='{2}' group by A.uid,B.name",
time.AddDays(-1).ToString("yyyy-MM-dd"), time.ToString("yyyy-MM-dd"), time); --------------------编程问答--------------------
--------------------编程问答-------------------- 我这样写得到的结果是
select A.name,ISNULL(SUM(B.start),0)start from user A
LEFT JOIN team B ON A.id=B.uid
group by A.name
8,0,8
8,0,0
8,0,1
也就是上次累积星数根本 没有与其它数据同步得到。. --------------------编程问答-------------------- 二楼在线不?
主要问题在于我想要上次累积星数和上次星数呀。
--------------------编程问答-------------------- --------------------编程问答-------------------- 首先声明一下,你的data这个字段这里默认是date类型的
select tt.uname,tt.sumstart,ttt.laststart from
(
select id,name as uname, COALESCE(SUM(start),0) as sumstart from [user] t1 left join team t2
on t1.id=t2.uid group by id,name
) tt,
(
select t1.id,t1.name as uname, COALESCE(start,0)as laststart from [user] t1 left join team t2
on t1.id=t2.uid and data=(select MAX(data) from team)
) ttt
where tt.id=ttt.id;
补充:.NET技术 , .NET技术前瞻