WINFROM中,我有三张数据表,想整合成一张dt,然后绑定到datagridview,
表A如下,
姓名  工号  基本工资 
张三  001  1500 
李四  002  1200 
王五  003  1600 
赵六  004  1900 
表B是 工号 计件工资   完工日期
001  300      2008-7-12
001  200      2008-7-18
002  400      2008-7-10
002  800      2008-7-25
003  350      2008-7-19
004  600      2008-7-22表C
工号 计时工资   完工日期
001  200      2008-7-14
001  500      2008-7-17
002  200      2008-7-12
002  300      2008-7-23
003  150      2008-7-17
004  400      2008-7-22
我想把这三张数据表整合到一块然后绑定到datagridview,形式如下姓名  工号  基本工资  计件工资 计时工资
张三  001  1500     500     700  //此行的计件工资500是表B中300+200的和
李四  002  1200     1200    500
王五  003  1600     350     150
赵六  004  1900     600     400
需求就是先求出表B跟表C中工号相同的并且在七月的计件跟计时工资的和,作为一列,然后加到表A的后面!三张表中工号是一一对应的关系,我用的是ACCESS数据库,请各位帮帮我,项目的最后一步了!我应该表述明白了是吧!

解决方案 »

  1.   

    好像蛮容易的select 表A.姓名,工号,基本工资,
    ( select sum(计件工资)  from 表B where 工号=表A.工号) AS 计件工资,
    ( select sum(计时工资)  from 表C where 工号=表A.工号) AS 计件工资 
    from 表A按照这样应该是可以的
      

  2.   

    先创建一个空的datatable dtblT,添加这些列:姓名  工号  基本工资  计件工资 计时工资生成表A的datatable填充dtblT,如此再生成表B和表C的,填充dtblT的相应列。表B和表C你要先group好。
      

  3.   

    select a.*,sum(b.计件工资) as 计件工资,sum(c.计时工资) as 计时工资
    from 表A a inner join 表B b on.a.工号 = b.工号
    inner join 表C c on b.工号 =c.工号
    group by a.工号,a.姓名,a.基本工资
      

  4.   


    create table A
    (
    name nvarchar(10),
    ID nvarchar(3),
    Salary int
    )create table B
    (
    ID nvarchar(3),
    SalaryByNum int,
    EndDate datetime
    )create table C
    (
    ID nvarchar(3),
    SalaryByTime int,
    EndDate datetime
    )insert into A values('张三', '001', 1500); 
    insert into A values('李四', '002', 1200); 
    insert into A values('王五', '003', 1600); 
    insert into A values('赵六', '004', 1900); insert into B values('001', 300, '2008-7-12'); 
    insert into B values('001', 200, '2008-7-18');  
    insert into B values('002', 400, '2008-7-10');  
    insert into B values('002', 800, '2008-7-25');  
    insert into B values('003', 350, '2008-7-19');  
    insert into B values('004', 600, '2008-7-22');  insert into C values('001', 200, '2008-7-14'); 
    insert into C values('001', 500, '2008-7-17'); 
    insert into C values('002', 200, '2008-7-12'); 
    insert into C values('002', 300, '2008-7-23'); 
    insert into C values('003', 150, '2008-7-17'); 
    insert into C values('004', 400, '2008-7-22');select a.name,a.id,a.salary, b.SalaryByNum,c.SalaryByTime 
    from A a 
    inner join (select id,sum(SalaryByNum) SalaryByNum from B where DatePart(m,EndDate)=7 group by id) as b 
    on a.id=b.id 
    inner join (select id,sum(SalaryByTime) SalaryByTime from C where DatePart(m,EndDate)=7 group by id) as c
    on a.id=c.id
      

  5.   


    select A.*,b.计件工资,c.计时工资 
    from A inner join (select 工号,sum(计件工资) as 计件工资 from B where 完工日期 between '2008-6-30' and '2008-8-1' group by 工号) b on A.工号=b.工号
    inner join (select 工号,sum(计时工资) as 计时工资 from C where 完工日期 between '2008-6-30' and '2008-8-1' group by 工号) c on A.工号=c.工号
      

  6.   

    写对SQL语句就行啦~~~ 呵呵