现有表如下:
字段名   day1 day2 day3 ... day31
文本值    a    b   a         b
          b    c   d         b
          .
          .
          .如何提出该字段值,并统计a,b的个数各多少,由于数据库是ACCESS,许多
SQL命令用不了,或者在下水平太次,不会用.一个一个字段内容的比较肯
定是违背编程初衷的,能否给个简单点的方法.

解决方案 »

  1.   

    1、先把数据插入到一个表一个字段中。
       insert into a_tmp(day) select day1 from XXX;
       insert into a_tmp(day) select day2 from XXX;
       .....   insert into a_tmp(day) select dayd31 from XXX;
    2、在新表中进行统计分析
       select count(*) from a_tmp group by day;
      

  2.   

    你可以实用adoTable的GetColumn之类的方法,获取字段列表,但是就不是执行一条sql就能出结果的,还需要delphi中编写逻辑才能得到你的结果.也就是说不是sql统计了,是delphi统计
      

  3.   

    select count(a),count(b)
    from select day1 from table1
    union all
    select day2 from table2...access我也不太清楚有没有union,如果没有,你可以用子查询,实现是可以,不过代码长了点
      

  4.   

    //Access中的系统表MSysobjects存储属性的字段是二进制格式,不能直接分析
    //可以采用ADO自带的OpenSchema方法获得相关信息  //use ADOInt.pas
      //po: TableName
      //DBCon:TADOConnection
      /ds:TADODataSet
      
    --表信息
      DBCon.OpenSchema(siTables, VarArrayOf([Null, Null, Table]), EmptyParam, ds);--列信息
      DBCon.OpenSchema(siColumns, VarArrayOf([Null, Null, po]), EmptyParam, ds);
      
    --主键
      DBCon.OpenSchema(siPrimaryKeys, EmptyParam, EmptyParam, ds);
      
      
    --主键、外键对照
      DBCon.OpenSchema(siForeignKeys, EmptyParam, EmptyParam, ds);