我是一名程序员(主要是C ++),他已进入非软件工作场所。但是,我对数据库的东西没有多少经验。
TL; DR:如果我们将Crystal Reports与仅编写执行SQL查询并解析结果的脚本进行比较,那么CR是否可以通过SQL查询&脚本?我纯粹是在提取数据方面谈论 - 而不是制作漂亮的文档。
详情:
在我的工作场所,他们有一个过程,您可以运行一堆Crystal Reports,将日期范围修改为当前月份,手动将每个日期范围导出到Excel,删除不需要的行和列,然后剪切并粘贴进入管理层使用的摘要excel文档。
对我而言,这是非常疯狂和愚蠢的。我想自动化/编写大部分内容。
所以我有两个选择:
我更喜欢学习SQL,因为它更通用,更实用。但我需要确信我可以获得我需要的数据输出(无需编写一百万行代码来自己重现CR。)
所以,是的,我正在寻找一个答案,“两者是等价的。你可以在CR中做任何事情,你可以通过脚本和SQL轻松完成,”或“如果你需要根据一个分类将记录分组参数,然后将他们的一个字段相加,然后CR将比原始代码更容易做到,“将我推向一个方向或另一个方向。
编辑: 一些额外的细节。目前,我的水晶报告运行数据库查询,然后水晶做了类似的事情,“不显示返回的记录,而是按字段A对记录进行分组,然后显示每个组中记录的数量。”
这样的功能难以通过SQL编码重现吗?例如,我不想写一个python(或其他)脚本来解析和处理来自明文CSV的数据。
答案 0 :(得分:3)
您不能只比较SQL和CR - 它们有不同的用途。 SQL(在此上下文中)是数据源,CR是相当的输出格式化程序。对于excel,您需要数据,而不是格式化输出。 Excel结合SQL可以为您提供所有CR选项(动态交叉表报表,图表等),您无法直接从SQL数据中获取。 顺便说一下,通常需要创建SQL视图或过程来克服CR限制;从这个角度来看,SQL有比CR更多的选项。
我个人会选择SQL + Excel路由。在我们公司,我们只使用SQL + CR而不进行后处理,有时使用SQL + Excel。我们的客户正在使用不同的方法。
但正如其他人所说,工具的选择取决于更多的东西。谁必须重新设计报告?谁将维护这些报告?需求变化的频率如何?除了采购Excel表格之外,CR报告还有更多用途吗?如果报告不起作用,谁会在晚上醒来?
答案 1 :(得分:2)
管理层: 在很多我会说大多数案例管理不知道SQL。因此,如果E.g.HR的经理想要了解某事情,那么他将如何获得这种状态?这是Crystal报告的图片,使用水晶报告他们不必担心SQL;他们只需输入必填字段并获取数据。
程序员观点: 可以通过SQL实现简单的数据输出,但考虑需要提取详细信息和摘要的方案。我同意它可以通过SQL完成,但考虑使用sql开发此类输出所需的时间和熟练程度的开销。我敢打赌,与水晶相比,使用sql开发这样的输出并不容易。所以我会说学习SQL和水晶,你可以选择工具来申请你的需求。
答案 2 :(得分:2)
您可以编写SQL并将其放入Crystal Report中。这两个世界中最好的,可能比拖放Crystal功能更快的性能。 报告运行时,您会看到一些响应时间延迟。
答案 3 :(得分:2)
Crystal Reports可以使用普通的SQL查询实现一些非常棘手的功能,因为Crystal Reports可以在单个公式中访问整个数据集,并且可以在运行时执行操作。
然而,除非您有一些非常疯狂的复杂Crystal Reports,否则我建议您在Excel中构建一个工具,只需将信息直接点击到新工作表中即可。
我做了这个,它让我得到了晋升,而不是开玩笑:P
我有一个自定义Excel Addin我可以给你代码基本上这样做:
此优点是您可以更新主菜单列表及其引用的每个视图,而无需对文件进行任何更改或向每个人重新发布任何内容。
答案 4 :(得分:0)
答案 5 :(得分:0)
我通过编辑excel sql来解决这个问题,Left(Column_maxLength,250) 这解决了我的问题 在我的情况下,即使我读了250左边的字符就足够了