现在有  多张字段一样的表,该怎样用程序将其合并在一起,实现多表查询统计?
请写出源代码来?控件有 dbgrid  ,query ,database,datasource

解决方案 »

  1.   

    最好在SQL2000里用视图或存储过程写好,再在程序里像调用一张表一样调用
      

  2.   

    用query和sql的 union就行了
    query.sql.add('select * from a union all selelct * from b');
    query.open;
      

  3.   

    SELECT a.SP_ID, a.SP_NAME, a.SP_MOUNT, a.SP_PRICE1 * a.SP_MOUNT AS kcmoney, 
          b.pfmount, a.SP_PRICE2 * b.pfmount AS pfmoney, c.lsmount, 
          a.SP_PRICE1 * c.lsmount AS lsmoney, d.bsmount, 
          a.SP_PRICE1 * d.bsmount AS bsmoney, e.rkmount, 
          a.SP_INPRICE * e.rkmount AS rkmoney, 
          ((a.SP_PRICE1 * c.lsmount + a.SP_PRICE2 * b.pfmount) - a.SP_PRICE1 * d.bsmount) 
          - a.SP_INPRICE * e.rkmount AS ml
    FROM dbo.SHPXX a LEFT OUTER JOIN
              (SELECT sp_id, SUM(pfmx.quantity) AS pfmount
             FROM pfmx
             GROUP BY sp_ID) b ON a.SP_ID = b.sp_id LEFT OUTER JOIN
              (SELECT sp_id, SUM(xsmx.quantity) AS lsmount
             FROM xsmx
             GROUP BY sp_id) c ON a.SP_ID = c.sp_id LEFT OUTER JOIN
              (SELECT SP_ID, SUM(BSMX.QUANTITY) AS bsmount
             FROM bsmx
             GROUP BY sp_id) d ON a.SP_ID = d.SP_ID LEFT OUTER JOIN
              (SELECT sp_id, SUM(rkmx.quantity) AS rkmount
             FROM rkmx
             GROUP BY sp_id) e ON a.SP_ID = e.sp_id
      

  4.   

    insert into (fields)
    select table1.fields,table2.fields,table3.fields
    from table1.talble2.table3
    where conditon