2014-02-28 1 views
2

JOINS를 사용하여 여러 다른 테이블에서 데이터를 가져 오는 아래 테이블과 같은 뷰를 설정했습니다. 기본적으로 아래의 데이터를 Job #으로 분할하는 Crystal Report를 복제하려고합니다. - Weekly (hrs) - TotalToDate (hrs) - Budget (hrs)크리스탈이 가져 오는 방식대로 테이블에서 필요한 데이터를 가져 오는 방법은 무엇입니까?

그리고 이것은 부서별로 나뉩니다. 보고서가하는 방식은 지난주의 시간을 표시 한 다음 총 부서 시간을 표시 한 다음 해당 부서에 대해 설정된 예산 시간을 표시합니다. Picture for reference

테이블은 위의 내용을 반영하지 않습니다. DB 테이블이 어떻게 생겼는지에 대한 예입니다.

+-----------+------------+---------------+--------+---------------------+ 
    | Job  | Work_Date | Work_Center | Est_Total_Hrs | Act_Run_Hrs | 
    +-----------+------------+---------------+--------+------+--------------+ 
    |  5666 | 2014-02-23 | SURFACE  |  155  |  5  | 
    |  5666 | 2014-02-16 | SURFACE  |  155  |  3  |  
    |  5666 | 2014-02-23 | DESIGN  |  200  |  6  |  
    |  5666 | 2014-02-16 | DESIGN  |  200  |  4  |  
    |  5666 | 2014-02-23 | SURFACE  |  150  |  2  |  
    |  5666 | 2014-02-16 | SURFACE  |  150  |  2  |  
    |  5666 | 2014-02-23 | DESIGN  |  300  |  8  |  
    +-----------+------------+---------------+---------------+--------------+ 

또한, 다른 작업 번호를 많이 프로그래머, 내가 크리스탈 이상 1 일을 끌어 때 위하지만 검색하려는 모든 작업과 함께 그림 같은 보고서를 표시합니다.

이 데이터를 가져 와서 Crystal 보고서에서 같은 방식으로 표시되도록하려면 어떻게해야합니까? 같은 모양의보기를 만들고 싶습니다. 크리스탈이 어떻게하는지 볼 수있는 방법이 있습니까? "Show Query"를 클릭하면 SQL Server 및 Adminer에서 작동하도록 약간의 내용을 다시 작성해야하는 아래 쿼리가 표시됩니다.

쿼리 지난 90 일 동안 업데이트 된 Work_Date 내의 모든 작업에 대한 모든 데이터를 가져 오는 데 사용하고 있습니다.

SELECT Job_Operation.Work_Center 
    ,Job_Operation.Job_Operation 
    ,Job_Operation_Time.Work_Date 
    ,Job_Operation.Est_Total_Hrs 
    ,Job_Operation_Time.Act_Run_Hrs 
    ,Job_Operation_Time.Act_Setup_Hrs 
    ,Job.Description 
    ,Job_Operation_Time.Overtime_Hrs 
    ,Job_Operation_Time.Act_Setup_Hrs 
    ,Job.Job 
    ,Job.Description 
    ,Job_Operation_Time.Labor_Burden 
    ,Job_Operation.Est_Setup_Labor 
    ,Job_Operation.Est_Run_Labor 
    ,Job_Operation.Est_Labor_Burden 
    ,Job_Operation.Operation_Service 
FROM Job AS Job 
LEFT OUTER JOIN Job_Operation AS Job_Operation ON Job.Job = Job_Operation.Job 
LEFT OUTER JOIN Job_Operation_Time AS Job_Operation_Time ON Job_Operation.Job_Operation = Job_Operation_Time.Job_Operation 
WHERE DATEDIFF(day, Work_Date, GETDATE()) < 90 ORDER BY Work_Date Desc 

답변

1
크리스탈 쿼리에서 데이터를 가져 와서 보고서의 디자인에 따라 내부 조작을한다, 그래서 당신은 테이블을 필요로하는 경우 당신이 필요로하는 Crystal 보고서에서 쿼리와 함께 다음 보고서를 볼 수 정확하게됩니다

몇 가지 변경 사항을 적용합니다.

제안 :

  1. 리포트는 6 열이하지만 당신은 당신이 단지 6 열을 가질 수 있도록 쿼리를 변경해야 할 수 있도록 10 개 이상의 열이 쿼리합니다.

  2. 보고서는 일주일에하지만 당신은 당신이 걸릴 때 말했다

  3. 시간 데이터에서 매주 데이터를 얻을 관리 할 수 ​​있도록 검색어의 일부 기능을 작성해야하므로 쿼리가 시간당 데이터가 따라 데이터가 이상 1 ID를 주어진 형식으로 얻은 다음 결과가 group by 인 조건을 결과 쿼리에 추가하면 모든 데이터가 그룹화됩니다. 예를 들어 하나의 ID 만 필요하면 ID별로 그룹화하여 ID에 대한 레코드가 하나만 있도록하십시오. 일부 날짜 수식을 일부 group by 조건을 추가

  4. 봅니다 정확한 출력을 얻을 수

관련 문제