SQL语句的问题 主从表的查询? 急!急1!jjiji(50分)

  • 主题发起人 主题发起人 hymen1
  • 开始时间 开始时间
H

hymen1

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家帮帮忙!
应如何如下的数据库 查询得到 我想要的数据集呢?
数据库结构如下:
表1:
no1(关健字) nane sex

1 aa f
2 bb f
3 cc m
4 ab f


表2:
no2(关键字) no1 name ml
1 1 aa 100
2 1 aa 200
3 2 bb 200
4 2 bb 100
5 3 cc 500


要得到的 数据集

no1 name sum(ml)
1 aa 300
2 bb 300
3 cc 500
4 ab 0


那么查询语句应该怎样查了!!
 
好象用不到主从表;
select no1,name,sum(ml) from 表2 group by no1,name
 
select no1,name,sum(ml) from 表2 group by no1,name
表2的name是冗余的
 
select a.no1, a.name, b.sum(ml) from
表1 a, 表2 b where a.no1=b.no1 and a.name=b.name ......
你的表结构就问题.
 
SELECT NO1,Name1,PP = (SELECT isNull(SUM(ml),0) FROM table2
WHERE table2.no1 = table1.no1)
from table1
group by no1,name1
 
SELECT 表1.no1 AS No,表1.name AS Name,SUM(表2.ml) AS ml
From 表1 INNER JOIN 表2 ON 表1.No1=表2.No1
Group By 表1.no1
表二中的name不用。
 
SELECT 表1.no1,表1.name,SUM(表2.ml) AS ml
From 表1 LEFT JOIN 表2 ON 表1.No1=表2.No1
Group By 表1.no1,表1.name
 
let me try!!
 
to all:
好像不行啊? 表二的数据不能累加哦?

 
SUM(表2.ml)
你有写吗?应该不会的,我都试了很正常
 
不累加肯定是你的GROUP BY后写的不对。
如果你用你现在的表结构,就完全可以按照第一人的回答去写。不涉及表一
 
问题已经解决了,看看SQL的例子吧!
 
也可以用下面的方法,不过不是很好,westboy2000的方法应可以
SELECT 表1.no1, 表1.name, ml = ISNULL
((SELECT SUM(ml)
FROM 表2
WHERE 表1.No1 = 表2.No1), 0)
FROM 表1
 
to all
用了westboy200的方法
SELECT 表1.no1,表1.name,SUM(表2.ml) AS ml
From 表1 LEFT JOIN 表2 ON 表1.No1=表2.No1
Group By 表1.no1,表1.name
得到的结果是 ml的结果是全部累计,而不是分别累计?
 
我想问题的关键在于:
如何累加表二的同姓名的数据。!!
 
我用的是本地数据库paradoxs 7
 
to hymen1:谁说我写的不对,我按照你的表结构专门建了两个paradoxs 7的表,
连数据都做的跟你写的一模一样,查询结果完全正确!
no1 name ml
1 aa 300
2 bb 300
3 cc 500
4 ab 0
你自己再检查检查,不要自己写错了![8D]
SELECT t1.no1,t1.name,SUM(t2.ml) AS ml
From t1 LEFT JOIN t2 ON t1.No1=t2.No1
Group By t1.no1,t1.name
 
行了,

谢谢~~~~~~~~~

给份
 
多人接受答案了。
 
to westboy2000:
如果在加上排序,如又要按照 sum(ml) 的降序 是不是加上order sum(ml)就可以呢?
 
后退
顶部