(1)得到结存数量(NUM)和金额(money):
  select b6,sum(-(b0-0.5)*2*b3) as num,sum(-(b0-0.5)*2*b3*b4) as money from a where b1<99/03/01 group by b6
(2)做个循环:
for i:=0 to sql.recordcount-1 do
begin
insert into ...values(fieldbyname('num').asfloat,fieldbyname('money').asfloat....)
next;
end;

解决方案 »

  1.   

    使用Union语句。或者生成临时库,
      

  2.   

    lxl老兄,您这样做,好像不行啊,
      

  3.   

    lxl老兄,您这样算结存数,好像不行啊,为什么不从B 库取?,
      

  4.   

    WINGSUN,UNION 只能用于同一数据库,我是两个数据库能行吗?
      

  5.   

    你的数据在两个数据库中吗,UNION可以在同一个数据库中的不同表中使用。
    如果你使用的数据库系统支持就可以使用。
    你为什么要在两个数据库中取数据?
      

  6.   

    请问:?WINGSUN ”数据库系统支持就可能使用“,那同一目录下的多个DBF数据库能支持吗,(未建‘别名’)?
      

  7.   

    再问:假如查询3-6月,上月结存处一行的结存数量,金额应是2月底的余额,而在DBGRID 中应放在3月前,位置怎么确定?
           
      

  8.   

    WINGSUN 老兄,还有比这更热闹的论坛吗?
      

  9.   

    为什么会出现‘ 类型不匹配在表达式中‘ (TYPE MISMATCH IN EXPRESSION)
    select * from 'c:\data\items.db' union  select * from 'c:\data\country.db'
      

  10.   

    两条SQL语句UNION,第一条取得2月的余额,在UNION上3-6月的结果,就可以了。我也想知道别处有没有,看过一些地方的论坛,界面不友好。
      

  11.   

    你的语法有错误,不能使用*,UNION要求相对应的字段类型必须一致,每一个Select语句中的字段数目要一致。
    Select Field1,Field2,Field2,Field4 From Table1
    Union
    Select Field1,Field2,Field2,Field4 From Table2
      

  12.   

    查询出来后,如何把其数据按上面的格式放入DBGRIR中呢,(DELPHI5)
    在ONDRAWCELL  事件中?
      

  13.   

    查询出来的结果是一个TQuery的集合,通过DBGrid的DataSource属性可以将他们联系在一起。
      

  14.   

    这样只是把数据全部搬过去,可每一行的上月结存数不能显示比如上面的’2月结存‘;
    BTW,你有ICQ吗?
      

  15.   

    你是要显示“2月结存“几个字符?
    Select '2月结存' As FirstCol ,Field1,... From Table1
    Union
    Select Field0 as FirstCol, Field1,.... From Table2
    有OICQ,没有ICQ.
      

  16.   

    高见,多谢,我的OICQ  是10156830 有空多交流? 
      

  17.   

    select 1997/01/02 as cyear,b01 as code,b40 as amount from 'c:\data\CWclkc99.dbf' 
    union 
    select b011 as cyear,b01 as code,0 as amount from 'c:\data\clrccopy.dbf' 总出错为什么呢说有不配的类型在表达式中???
      

  18.   

    TO ALL:
       大侠们帮帮忙
      

  19.   

    不用UNION 
    有其他办法吗,回为两库结构不同。
      

  20.   

        方法是有很多种,就看你有没有耐心!我先提供两种方法:
        1、创建一个临时表(如果不会,可以查相关资料。注意:数据库不同建立的方法有点不同),然后把所有的查询结果等等一系列的东西全部转到这个表中。那就成了你要的结构。当然,这种方法可能会因数据库不同显的很慢!我有类似的例子,针对Access97数据库,如果有1000条记录,差不多一分钟!当然DBF数据库就快多了,但也差不多30秒,因为时间都浪费在你将主查询结果一条条转入临时表上了!    2、用视图(CREATE VIEW VIEW_NAME SELECT...)。首先把二月份的结存创建到一个视图,然后将目前的查询结果放到另外一个视图,然后用UNION将他们连接起来即可。需要注意的是:在某些数据库里面,CREATE VIEW、SUM、GROUP BY、WHERE四个关键字不能同时使用!如果有这种情况,那不幸,只有用第一种方法!    其实这个问题的根本在于:在DELPHI中,不能从查询里面连续查询!而大伙早就适应了FOX系列那一套,所以各位的绝大部分方法都行不通!唉,当初这个问题也是搞了我很久!
        OK!