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

  • 主题发起人 主题发起人 hymen1
  • 开始时间 开始时间
要排序这样写就行了:
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 order by ml;

要降序排列这样写:order by ml desc;
 
如果要查询 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);
好像两种都不行?

请指教!![:D]
 
[:(]
如果这样的两个数据库合并应怎样写SQL语句。
 
请帮帮忙!!

急着出货!!
 
加条件这样写:
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。
 
有点问题:
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时,就累加出现不全了???
 
有的说

SQL.Add('where (ml>=:a and ml<=:b'));时
 
以前写错了,对ml的合计值做判断要这样写,调试通过,没问题。[:)]
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
having sum(t2.ml)>100 and sum(t2.ml)<600
order by ml;
 
原来是这样的。我看了很多书都没有找到,

thank you very much!!
 
后退
顶部