안녕하세여?
식사는 하셨는지여...^^
지금 제가 퀵레포트때문에 일주일을 고생하구 있담니다..좀 도와주세여~~
제가 출력하구 싶은 형식은 월별로 출근부를 출력하고 싶거든여
팀명 사원번호 사원이름 01 02 03 04 05....31 //ColumnHeader band
A팀 h-111 김아무개 O X O O O....X //Detail band
그런데 문제는...
팀명,사원번호,사원이름은 하나의 Query에서 필드만 따로 연결 해주구여
TeamSql
select T.D_Name, S.S_No , S.S_Name from 사원 S, 팀 T
Where S.S_dept = T.D_code
QuickRep1의 DataSet두 TeamSql로 연결을 했구여
01,02,03......,31은 다른 쿼리거든여
어떻게 나와야하는지 몰라서 Query를 날짜만큼(31개) 만들었어여..
왜냐면 퀵레포트의 날짜에 각각 필드를 연결해 줘야하니깐여...
Sql01
select 출근체크 from 월별출근
Sql02
select 출근체크 from 월별출근
.
.
그리구 코드상에서
TeamSql을 열어서 사원번호를 비교해서 같으면 각각에 사원번호에 따라서
with frmMonPrint do
begin
with Sql01 do
begin
Close;
Sql.Clear;
Sql.Add('Select 출근체크 as 01 from 월별출근');
Sql.Add('Where 월 = '+QuotedStr(edDays.Text));
Sql.Add(' And 날짜 = ''01''');
Open;
end;
with Sql02 do
begin
Close;
Sql.Clear;
Sql.Add('Select 출근체크 as 02 from 월별출근');
Sql.Add('Where 월 = '+QuotedStr(edDays.Text));
Sql.Add(' And 날짜 = ''02''');
Open;
end;
.
.
.
end;
그런데 이걸 돌리면 전부 'O'가 나오네여...
db는 Access를 쓰고 있습니다.
사원번호에 따라서 1일부터 31일까지 출근체크가 나오게 하려면 어케 해야할까여?
한개의 쿼리를 활용하세요.
Select 팀.팀명,
사원.사번,
사원.성명,
case when 출근부.일자 = '01' and 출근부.출근확인 = 'o' then 'O' else 'X' end day01,
case when 출근부.일자 = '02' and 출근부.출근확인 = 'o' then 'O' else 'X' end day02,
.....
case when 출근부.일자 = '31' and 출근부.출근확인 = 'o' then 'O' else 'X' end day31
From 사원
left join 팀 on 사원.부서코드 = 팀.코드
left join 출근부 on 사원.사번 = 출근부.사번
and 출근부.월 = 지정년월
퀵리포드에서는 아래의 필드들을 활용.
Query1.팀명 Query1.사번 Query1.성명 Query1.day01,.......,Query1.day31
blackjewel wrote:
> 안녕하세여?
>
> 식사는 하셨는지여...^^
>
> 지금 제가 퀵레포트때문에 일주일을 고생하구 있담니다..좀 도와주세여~~
>
> 제가 출력하구 싶은 형식은 월별로 출근부를 출력하고 싶거든여
>
>
> 팀명 사원번호 사원이름 01 02 03 04 05....31 //ColumnHeader band
> A팀 h-111 김아무개 O X O O O....X //Detail band
>
> 그런데 문제는...
>
> 팀명,사원번호,사원이름은 하나의 Query에서 필드만 따로 연결 해주구여
> TeamSql
> select T.D_Name, S.S_No , S.S_Name from 사원 S, 팀 T
> Where S.S_dept = T.D_code
>
> QuickRep1의 DataSet두 TeamSql로 연결을 했구여
>
> 01,02,03......,31은 다른 쿼리거든여
> 어떻게 나와야하는지 몰라서 Query를 날짜만큼(31개) 만들었어여..
> 왜냐면 퀵레포트의 날짜에 각각 필드를 연결해 줘야하니깐여...
> Sql01
> select 출근체크 from 월별출근
> Sql02
> select 출근체크 from 월별출근
> .
> .
> 그리구 코드상에서
> TeamSql을 열어서 사원번호를 비교해서 같으면 각각에 사원번호에 따라서
> with frmMonPrint do
> begin
> with Sql01 do
> begin
> Close;
> Sql.Clear;
> Sql.Add('Select 출근체크 as 01 from 월별출근');
> Sql.Add('Where 월 = '+QuotedStr(edDays.Text));
> Sql.Add(' And 날짜 = ''01''');
> Open;
> end;
> with Sql02 do
> begin
> Close;
> Sql.Clear;
> Sql.Add('Select 출근체크 as 02 from 월별출근');
> Sql.Add('Where 월 = '+QuotedStr(edDays.Text));
> Sql.Add(' And 날짜 = ''02''');
> Open;
> end;
> .
> .
> .
> end;
>
> 그런데 이걸 돌리면 전부 'O'가 나오네여...
>
> db는 Access를 쓰고 있습니다.
>
> 사원번호에 따라서 1일부터 31일까지 출근체크가 나오게 하려면 어케 해야할까여?