可能你的sfee的值为零把as sfee 放到sum(sfee)后边试一试

解决方案 »

  1.   

    to zjhydx98(tourist):
    试过了,还是不成,说列无效!
      

  2.   

    sfee应该是无效的,sql在处理这个的时候,
    as后面的不能直接在sql中使用,
    你可以作一个最小的例子就知道了
    建议你把它作成存储过程,然后存储过程,
    先执行select,先让你要计算的值为空,然后在执行一句update在改一次应该就可以了。
      

  3.   

    SELECT Table1.DateTime,Table1.Province,Table1.Time   Table1.Money,Table1.GiveMoney,
    (SELECT SUM(Minute) FROM Table2 WHERE Table1.area = Table2.area  AND table1.province = table2.province AND table1.datetime = table2.datetime) AS SMinute //这里怎么没有“,”
    (SELECT SUM(fee) FROM Table2 WHERE Table1.area = Table2.area AND table1.province = table2.province  AND table1.datetime = table2.datetime) AS sfee //这里也没有“,”
    ((sfee-tabel1.givemoney)/sfee)*100 as 差异率 FROM Table1
    看看表结构可以吗?
      

  4.   

    adoquery.sql.add('SELECT Table1.DateTime,Table1.Province,Table1.Time Table1.Money,Table1.GiveMoney,');
    adoquery.sql.add('(SELECT SUM(Minute) FROM Table2 WHERE Table1.area = Table2.area  AND table1.province = table2.province AND table1.datetime = table2.datetime) AS SMinute, '); //逗号
    adoquery.sql.add('(SELECT SUM(fee) FROM Table2 WHERE Table1.area = Table2.area AND table1.province = table2.province  AND table1.datetime = table2.datetime) AS sfee, ');   //逗号
    adoquery.SQL.Add('((sfee-tabel1.givemoney)/sfee)*100 as 差异率');//
      

  5.   

    adoquery.sql.add('SELECT Table1.DateTime,Table1.Province,Table1.Time Table1.Money,Table1.GiveMoney,');
    adoquery.sql.add('(SELECT SUM(Minute) FROM Table2 WHERE Table1.area = Table2.area  AND table1.province = table2.province AND table1.datetime = table2.datetime) AS SMinute, '); //逗号
    adoquery.sql.add('(SELECT SUM(fee) FROM Table2 WHERE Table1.area = Table2.area AND table1.province = table2.province  AND table1.datetime = table2.datetime) AS sfee, ');   //逗号
    adoquery.SQL.Add('((sfee-tabel1.givemoney)/sfee)*100 as 差异率');//
      

  6.   

    SELECT Table1.DateTime,Table1.Province,Table1.Time  //这里也没有“,” Table1.Money,Table1.GiveMoney,
    (SELECT SUM(Minute) FROM Table2 WHERE Table1.area = Table2.area  AND table1.province = table2.province AND table1.datetime = table2.datetime) AS SMinute //这里怎么没有“,”
    (SELECT SUM(fee) FROM Table2 WHERE Table1.area = Table2.area AND table1.province = table2.province  AND table1.datetime = table2.datetime) AS sfee //这里也没有“,”
    ((sfee-tabel1.givemoney)/sfee)*100 as 差异率 FROM Table1
    看看表结构可以吗?
      

  7.   

    象你写的这么乱,真是恐怖,你把sql.text放在一个memo1里仔细看看嘛你的sql:
    SELECT Table1.DateTime, Table1.Province, Table1.Time Table1.Money, 
          Table1.GiveMoney,
              (SELECT SUM(Minute)
             FROM Table2
             WHERE Table1.area = Table2.area AND table1.province = table2.province AND 
                   table1.datetime = table2.datetime) AS SMinute
              (SELECT SUM(fee)
             FROM Table2
             WHERE Table1.area = Table2.area AND table1.province = table2.province AND 
                   table1.datetime = table2.datetime) AS sfee((sfee - tabel1.givemoney) / sfee) 
          * 100 AS 差异率
    FROM Table1
    你自己看看你能不能看得懂
      

  8.   

    “,”在程序里一个不少,只是贴过来时少了。因为要是少了的话会出问题,现在只一个问题就是计算公式那点儿。
    表结构到:
    http://www.csdn.net/Expert/TopicView1.asp?id=858403