姓名 正常工作 正常下班 加班 出去办事 中间下班 没来上班
小王 1 2 3 4 5 7
小梦 12 1 12 12 12 12
。。 。。 。。 。。 。。 。。 。。
。
。
这样的,我用单语句写,怎么来弄
正常工作:是TTIME和FACTION都有值。
正常下班:编号无N这个字母,和PRESENT有值
加班:20分钟内PLACE和NNUMBER相同
出去办事:编号无N这个字母和PRESENT为空
中间下班:CONDITION为中间下班。
没来上班:CONDITION为没来上班
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();//实例化一个数据集 DataTable dt = new DataTable("Grade");//建立个数据表(Grade)
dt.Columns.Add(new DataColumn("姓名", typeof(string )));//在表Grade中添加int类型的列
dt.Columns.Add(new DataColumn("正常工作", typeof(string)));//在表Grade中添加string类型的Name列
dt.Columns.Add(new DataColumn("正常下班", typeof(string)));//在表Grade中添加int类型的列
dt.Columns.Add(new DataColumn("加班", typeof(string)));//在表Grade中添加string类型的Name列
dt.Columns.Add(new DataColumn("出去办事", typeof(string)));//在表Grade中添加int类型的列
dt.Columns.Add(new DataColumn("中间下班", typeof(string)));//在表Grade中添加string类型的Name列
dt.Columns.Add(new DataColumn("没来上班", typeof(string)));//在表Grade中添加int类型的列
DataRow dr;//行
for (int i = 0; i < 10; i++)
{
dr = dt.NewRow();
dr["姓名"] = i;
dr["正常工作"] = "Name" + i;
dr["正常下班"] = i;
dr["加班"] = "Name" + i;
dr["出去办事"] = i;
dr["中间下班"] = "Name" + i;
dr["没来上班"] = i;
dt.Rows.Add(dr);//在表的对象的行里添加此行
// ds.Tables.Add(dt);//在数据集的表的集合中添加表bt(建立的表的对象)
this.dataGridView1.DataSource = dt;
}
这想这样一个一个的给他,可是姓名和对应的我想不到好的办法给对应,你有什么简单或者好的办法呢
小王 1 2 3 4 5 7
小梦 12 1 12 12 12 12
。。 。。 。。 。。 。。 。。 。。
。
。
这样的,我用单语句写,怎么来弄
正常工作:是TTIME和FACTION都有值。
正常下班:编号无N这个字母,和PRESENT有值
加班:20分钟内PLACE和NNUMBER相同
出去办事:编号无N这个字母和PRESENT为空
中间下班:CONDITION为中间下班。
没来上班:CONDITION为没来上班
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();//实例化一个数据集 DataTable dt = new DataTable("Grade");//建立个数据表(Grade)
dt.Columns.Add(new DataColumn("姓名", typeof(string )));//在表Grade中添加int类型的列
dt.Columns.Add(new DataColumn("正常工作", typeof(string)));//在表Grade中添加string类型的Name列
dt.Columns.Add(new DataColumn("正常下班", typeof(string)));//在表Grade中添加int类型的列
dt.Columns.Add(new DataColumn("加班", typeof(string)));//在表Grade中添加string类型的Name列
dt.Columns.Add(new DataColumn("出去办事", typeof(string)));//在表Grade中添加int类型的列
dt.Columns.Add(new DataColumn("中间下班", typeof(string)));//在表Grade中添加string类型的Name列
dt.Columns.Add(new DataColumn("没来上班", typeof(string)));//在表Grade中添加int类型的列
DataRow dr;//行
for (int i = 0; i < 10; i++)
{
dr = dt.NewRow();
dr["姓名"] = i;
dr["正常工作"] = "Name" + i;
dr["正常下班"] = i;
dr["加班"] = "Name" + i;
dr["出去办事"] = i;
dr["中间下班"] = "Name" + i;
dr["没来上班"] = i;
dt.Rows.Add(dr);//在表的对象的行里添加此行
// ds.Tables.Add(dt);//在数据集的表的集合中添加表bt(建立的表的对象)
this.dataGridView1.DataSource = dt;
}
这想这样一个一个的给他,可是姓名和对应的我想不到好的办法给对应,你有什么简单或者好的办法呢
name varchar(20);
ttime date;
faction varchar(200);
id VARCHAR2(200) ;
present varchar(200);
place varchar(200);
nnumber varchar(200);
condition varchar(200);
(select count(1) from acc_shoulibiao where name=a.name and ttime is not null and action is not null) 正常上班,
(select count(1) from acc_shoulibiao where name=a.name and instr(id,'N')=0 and present is not null) 正常下班,
(select count(1) from acc_shoulibiao b,acc_shoulibiao c where b.name=a.name and b.name=c.name and b.place=c.place and b.nnumber=c.nnumber and (c.ttime-b.ttime)*24*60<=20 and (c.ttime-b.ttime)*24*60>0 and c.id<>b.id) 加班,
(select count(1) from acc_shoulibiao where name=a.name and instr(id,'N')=0 and present is null) 出去办事,
(select count(1) from acc_shoulibiao where name=a.name and condition='中间下班') 中间下班,
(select count(1) from acc_shoulibiao where name=a.name and condition='没来上班') 没来上班
from acc_shoulibiao a
group by a.name;