大虾们,快来啊!!!!!!!!!!!!!!!!

bullHEcow 2003-09-24 05:43:11
有两张表如下
1: 2:(加班的情况:名字出现一次就记一次)
(name1统计白天) (name2统计夜里天)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
name sex age date name1 name2
张三 03-07-09 周七 李四
李四 03-07-06 周七 王五
王五 03-07-04 张三 周七
周七 03-07-03 周七 王五
车八 03-07-01 张三 车八
03-06-31 周七 NULL
03-06-03 NULL 张三
03-06-01 NULL NULL


现在 要得到如下报表的 形式

白天 黑夜
————————————————————————————
张三 加班的次数 加班的次数
李四 加班的次数 加班的次数
王五 加班的次数 加班的次数
周七 加班的次数 加班的次数
车八 加班的次数 加班的次数

请问该如何得到?先谢了
如果这上面不好写就
E_Mail: jsnhlr5907@sina.com




...全文
36 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bullHEcow 2003-10-28
  • 打赏
  • 举报
回复
to :ljianq(泉深水清)
先谢谢你,来帮我
ljianq 2003-10-09
  • 打赏
  • 举报
回复
select name,sum(白天),sum(黑夜) from
((select name,count(name1) as 白天,0 as 黑夜 from Table2 group by name) union
(select name,0 as 白天,count(name2) as 黑夜 from Table2 group by name)) a
group by name;
bullHEcow 2003-09-25
  • 打赏
  • 举报
回复

bullHEcow 2003-09-25
  • 打赏
  • 举报
回复
怎么,没人来帮忙啊
right here waiting!
bullHEcow 2003-09-25
  • 打赏
  • 举报
回复
我想在报表中实现!能不能用QuickRep1实现
chenqm 2003-09-24
  • 打赏
  • 举报
回复
刚才写的代码差了一行,现修正如下:

void __fastcall TForm1::Button1Click(TObject *Sender)
{ int n;
int iDay,iNight;//分别统计白班及夜班
Canvas->TextOut(40,10,"白天 黑夜");
Canvas->TextOut(10, 30,"----------------------------------");
Table2->Open();//表2打开
Table1->Open();//表1打开
n=2;
while(!Table1->Eof)
{iDay=0;
iNight=0;
while(!Table2->Eof)
{if(Table2->FieldByName("name1")->AsString
==Table1->FieldByName("name")->AsString)
iDay++;
if(Table2->FieldByName("name2")->AsString
==Table1->FieldByName("name")->AsString)
iNight++;
Table2->Next();
}
Canvas->TextOut(0, n*30,Table1->FieldByName("name")->AsString);
Canvas->TextOut(40, n*30,IntToStr(iDay));
Canvas->TextOut(100, n*30,IntToStr(iNight));

n++;
Table1->Next();
Table2->First();
}
}
chenqm 2003-09-24
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int n;
int iDay,iNight;//分别统计白班及夜班
Canvas->TextOut(40,10,"白天 黑夜");
Canvas->TextOut(10, 30,"----------------------------------");
Table2->Open();//表2打开
Table1->Open();//表1打开
n=2;
while(!Table1->Eof)
{iDay=0;
iNight=0;
while(!Table2->Eof)
{if(Table2->FieldByName("name1")->AsString
==Table1->FieldByName("name")->AsString)
iDay++;
if(Table2->FieldByName("name2")->AsString
==Table1->FieldByName("name")->AsString)
iNight++;
Table2->Next();
}
Canvas->TextOut(0, n*30,Table1->FieldByName("name")->AsString);
Canvas->TextOut(40, n*30,IntToStr(iDay));
Canvas->TextOut(100, n*30,IntToStr(iNight));
n++;
Table1->Next();
}
}

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧