【问题标题】:Creating a Report Generator创建报告生成器
【发布时间】:2016-12-09 04:00:53
【问题描述】:

我在企业支持部门,我使用的产品有一个大型数据库。程序中没有一个很好的报告生成工具,所以我们收到了很多自定义报告请求。这些通常很容易管理,我们有一个相当大的过去编写的查询库,可以剖析和修改以适应每个客户的需求。话虽如此,这有几个问题:

  1. 这是不必要的耗时。
  2. 我们的许多技术人员不具备执行此操作的 SQL 知识。

我想创建一个工具来构建这些查询,但我真的不知道如何处理任务(理想情况下它会提取数据并将其导出到 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 

我想创建一些东西,我可以在其中输入诸如“订单号、产品名称、数量、供应商、所需日期、发货日期、销售代表、城市、办公室”之类的内容以及 where 逻辑并将其吐出正确的查询。

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

例如只能处理客户、订单、orderDetails 和产品的程序。

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

【问题讨论】:

    标签: sql database automation reporting


    【解决方案1】:

    别想太多。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 2023-03-21
      • 2011-04-21
      相关资源
      最近更新 更多