创建报告生成器

时间:2016-12-09 04:00:54

标签: sql database automation reporting

我在企业支持中,与我合作的产品有一个大型数据库。程序中没有一个很棒的报表生成工具,所以我们得到了很多自定义报表请求。这些通常是非常易于管理的,我们在过去编写了一个非常庞大的查询库,用于剖析和修改以根据每个客户的需求进行定制。话虽这么说,但有几个问题:

  1. 这是不必要的时间。
  2. 我们很多技术人员都没有SQL知识来做这件事。
  3. 我想创建一个可以构建这些查询的工具,但是我真的不知道如何处理任务(理想情况下,它会将数据拉出并导出到csv,但现在只是写查询会很好)。我熟悉SQL,javascript和python。如果这些都不是理想的话,那么我会教我自己最好的东西。

    我们来看看这个示例数据库:

    http://www.eclipse.org/birt/img/documentation/sample-database/ClassicModelsDBSchema.jpg

    让我们说客户提交一张票据说:

    '请生成我们所有订单的报告。请包括订单号,订购的产品及其数量,产品供应商,订购日期,我们要求的日期,发货的实际日期,处理它的销售代表以及他们来自哪个办事处。'

    某处可能是某个模板,但有人最终会创建一个这样的查询:

    select o.orderNumber, p.productName, od.quantityOrdered, p.productVendor, o.orderDate, o.requiredDate, o.shippedDate, e.firstname, e.lastname, of.city, of.officeCode
    from 
    Orders o 
    JOIN OrderDetails od ON o.orderNumber = od.orderNumber 
    JOIN Products p ON od.productCode = p.productCode 
    JOIN Customers c on o.customerNumber = c.customerNumber 
    JOIN Employees e on e.employeeNumber = c.salesRepEmployeeNumber
    JOIN Offices of on of.officeCode = e.officeCode 
    

    我想创建一些东西,我可以输入类似"订单号,产品名称,数量,供应商,所需日期,发货日期,销售代表,城市,办公室"和逻辑,并让它吐出正确的查询。

    我想从小做起,只做一些可以使用3-4个最常用表中的少量值的东西。暂时没有逻辑。这是一个显而易见的简单程序,但它似乎是一个很好的第一次尝试。

    e.g。一个只能处理客户,订单,订单详细信息和产品的程序。

    有人能指出我如何开始这个项目的正确方向吗?在这一点上,我只是在四处寻找可以抓住并挖掘的东西。

1 个答案:

答案 0 :(得分:0)

不要过度思考。

在您已有的查询上放置一个Web界面,您可以在其中允许某些输入参数化[如客户]。如果您有基本查询,可以使用各种工具:

  • 过滤查询结果
  • 在返回的数据集中添加或删除列
  • 在结果中搜索
  • 导出结果

从这开始,因为这比尝试创建一个为您编写SQL的工具要容易得多。让人类组装核心查询并使用免费提供的软件工具在其上放置表示层。