100分求一双表查询句子!大家都来!
表1:
id company
1 我
2 你
3 他
表2:
mark companyid
7 1
8 1
9 1
4 2
6 3
7 3
表2中的companyid就是表1中的id
现在要统计表2中,各个人的分数总和,按分数从高到低排,还要取出该单位的名字。输出结果为:
我 24
他 13
你 4
各位都写写吧。急用!能用就行了!
问题点数:100、回复次数:9Top
1 楼moodboy1982(老鹰)回复于 2005-11-01 19:28:06 得分 0
你全是123456
谁懂是什么。Top
2 楼hxyman(自由不自在)回复于 2005-11-01 19:41:29 得分 0
Select 表1.company,表2.mark From 表2 Left Join 表1 On 表1.id=表2.companyid Order By 表2.mark DescTop
3 楼zy51(Final)回复于 2005-11-01 19:43:38 得分 30
set rs=conn.execute("SELECT sum(mark) as 总分,companyid from 表2 group by companyid order by sum(mark) DESC")
do while not rs.eof
set rs1=conn.execute("SELECT * from 表1 where id="&rs("companyid"))
response.write "名字:"&rs1("company")&"总得分"&rs("总分")
不知道是不是你要的?Top
4 楼gauss(Powered-by-Internet)回复于 2005-11-01 20:15:36 得分 0
select company, sum( mark )
FROM table_1, table_2
WHERE table_2.companyid = table_1.id
GROUP BY table_1.id, table_1.company
order by sum( mark ) descTop
5 楼xshsoft(internet)回复于 2005-11-01 20:16:06 得分 50
SELECT a.company,b.total FROM 表1 a INNER JOIN (SELECT 表2.companyid,SUM(表2.mark) As total FROM 表2 GROUP BY 表2.companyid) b ON a.id=b.companyid ORDER BY b.total DESCTop
6 楼tufun(白做了两年程序员还是那么菜)回复于 2005-11-01 20:17:24 得分 20
select sum(mark),a. company
from 表1 a left join 表2 b
on a.id=b.companyid
group by a.id,a. company
或
select sum(mark),a. company
from 表1 a left join 表2 b
on a.id=b.companyid
group by a. company
那就要看你的表1哪个是主键Top
7 楼xshsoft(internet)回复于 2005-11-01 20:20:34 得分 0
select company, sum(mark)
FROM 表1,表2
WHERE 表2.companyid = 表1.id
GROUP BY 表1.id, 表1.company
order by sum(mark) descTop
8 楼tufun(白做了两年程序员还是那么菜)回复于 2005-11-01 20:22:28 得分 0
select sum(mark),a. company
from 表1 a left join 表2 b
on a.id=b.companyid
group by a.id,a. company
ORDER BY b.total DESCTop
9 楼tufun(白做了两年程序员还是那么菜)回复于 2005-11-01 20:24:52 得分 0
zy51(Final) 你的方法真牛Top




