Mysql 如何以Crystal的方式从表中提取所需数据?

Mysql 如何以Crystal的方式从表中提取所需数据?,mysql,sql,crystal-reports,Mysql,Sql,Crystal Reports,我有一个类似下表的视图,它使用联接从多个其他表中提取数据。基本上,我试图复制一个Crystal报告,将下面的数据分解为工作-每周小时数-总计到每日小时数-预算数 这是按部门划分的。报告的方式是,它将显示上周的小时数,然后是到目前为止的总小时数,然后是为该部门设置的预算小时数 表并没有反映上述内容——只是DB表的一个示例 +-----------+------------+---------------+--------+---------------------+ | Job

我有一个类似下表的视图,它使用联接从多个其他表中提取数据。基本上,我试图复制一个Crystal报告,将下面的数据分解为工作-每周小时数-总计到每日小时数-预算数

这是按部门划分的。报告的方式是,它将显示上周的小时数,然后是到目前为止的总小时数,然后是为该部门设置的预算小时数

表并没有反映上述内容——只是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       |       
    +-----------+------------+---------------+---------------+--------------+
此外,有很多不同的工作编号,当我在Crystal中调出多个工作时,它将显示如上图所示的报告,但包含我想要检索的所有工作

我将如何提取这些数据,使其在Crystal报告中以相同的方式显示?我想创建一个看起来相同的视图。有没有办法看看Crystal是怎么做的?当我单击ShowQuery时,它会显示下面的查询,我必须重新编写一点,以便它在SQLServer和Adminer中工作

我用于在最近90天的更新工作日内提取所有作业的所有数据的查询

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

Crystal将从查询中获取数据,并根据报表的设计执行其内部操作,因此,如果您需要与查看报表完全相同的表,则需要在Crystal报表中进行查询,同时进行一些更改

建议:

您的报表只有6列,但您的查询有10多列,因此需要更改查询,使其只有6列

报表有按周计算的数据,但查询有小时数据,因此您需要在查询中编写一些函数,以便从小时数据中获取周数据

您说过,当您获取超过1个给定格式的ID时,那么在这种情况下,向结果查询中添加一些GROUPBY条件,以便对所有数据进行分组。例如,如果您只需要一个ID,则按ID分组,以便一个ID只有一条记录

尝试添加一些分组条件和一些日期公式以获得精确的输出