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数据库,请各位帮帮我,项目的最后一步了!我应该表述明白了是吧!
表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数据库,请各位帮帮我,项目的最后一步了!我应该表述明白了是吧!
解决方案 »
- 如何在 datagridview的单元格中嵌入 “组合框”、“文本框”进行编辑呢?
- c# filestream写入rar文件后打开文件时提示“不可预料的文件压缩末端”?
- 求一个科学计数法的正则表达式..急等...再问一下
- 使用了ribbon后,子窗体打开很慢
- c#中利用Process调用外部ftp.exe
- 急急急急急(tableLayoutPanel1;怎么把tableLayoutPanel1的第二行设置为1)
- statusbar中statuspanel.text属性不能修改问题??
- 动态插入菜单问题,高分简单!
- 如何使用Form.Site.DesignMode
- winform 在64位系统上无法正常的运行
- 我在ACCESS数据库表中把“照片”字段定义为ole类型 并在里面放入图片 我想通过C#窗体进行查询 输入姓名 找到了其所在的行 输出了其他信息 可是我不知道怎么输出图片 在窗体的picturebox里面显示对应的图片 如何写代码(最好带点注释)
- c#中如何StartService函数启动驱动服务?
( select sum(计件工资) from 表B where 工号=表A.工号) AS 计件工资,
( select sum(计时工资) from 表C where 工号=表A.工号) AS 计件工资
from 表A按照这样应该是可以的
from 表A a inner join 表B b on.a.工号 = b.工号
inner join 表C c on b.工号 =c.工号
group by a.工号,a.姓名,a.基本工资
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
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.工号