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
那么查询语句应该怎样查了!!
果要查询 sum(ml)的范围在两值之间,
加上 SQL.Add('where SUM(juan.ml)>=:a ');
parambyname('a').asinteger:=strtoint(edit1.text);
或 SQL.Add('where ml>=:a ');
parambyname('a').asinteger:=strtoint(edit1.text);
好像两种都不行?
请指教!!
来自:westboy2000, 时间:2001-10-16 11:16:00, ID:675407
加条件这样写:
SELECT t1.no1,t1.name,SUM(t2.ml) AS ml
From t1 LEFT JOIN t2 ON t1.No1=t2.No1
where ml>=400
Group By t1.no1,t1.name order by ml;
注意where要放在Group By之前,最后才是order by。
来自:hymen1, 时间:2001-10-16 16:57:00, ID:676070 | 编辑
有点问题:
SQL.Add('SELECT main.no1,main.name,SUM(juan.ml) AS ml ');
SQL.Add('From main LEFT JOIN juan ON main.No1=juan.No1 ');
SQL.Add('where ml>=:a ');
SQL.Add('Group By main.no1,main.name');
SQL.Add('order by ml desc');
parambyname('a').asinteger:=strtoint(edit1.text);
// parambyname('b').asinteger:=strtoint(edit2.text);
是好的。当改为:
SQL.Add('where ml>=:a and ml<=:b');时
查询的结果有错误?
搞不清楚怎么回事?
出现的问题为:部分结果累计时,没有全部累计,
但当 ml>=:a 时是正常的,
ml<=:b时,就累加出现不全了???
应如何如下的数据库 查询得到 我想要的数据集呢?
数据库结构如下:
表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
那么查询语句应该怎样查了!!
果要查询 sum(ml)的范围在两值之间,
加上 SQL.Add('where SUM(juan.ml)>=:a ');
parambyname('a').asinteger:=strtoint(edit1.text);
或 SQL.Add('where ml>=:a ');
parambyname('a').asinteger:=strtoint(edit1.text);
好像两种都不行?
请指教!!
来自:westboy2000, 时间:2001-10-16 11:16:00, ID:675407
加条件这样写:
SELECT t1.no1,t1.name,SUM(t2.ml) AS ml
From t1 LEFT JOIN t2 ON t1.No1=t2.No1
where ml>=400
Group By t1.no1,t1.name order by ml;
注意where要放在Group By之前,最后才是order by。
来自:hymen1, 时间:2001-10-16 16:57:00, ID:676070 | 编辑
有点问题:
SQL.Add('SELECT main.no1,main.name,SUM(juan.ml) AS ml ');
SQL.Add('From main LEFT JOIN juan ON main.No1=juan.No1 ');
SQL.Add('where ml>=:a ');
SQL.Add('Group By main.no1,main.name');
SQL.Add('order by ml desc');
parambyname('a').asinteger:=strtoint(edit1.text);
// parambyname('b').asinteger:=strtoint(edit2.text);
是好的。当改为:
SQL.Add('where ml>=:a and ml<=:b');时
查询的结果有错误?
搞不清楚怎么回事?
出现的问题为:部分结果累计时,没有全部累计,
但当 ml>=:a 时是正常的,
ml<=:b时,就累加出现不全了???