Crystal Reports vs. SQL Queries

10,419

Solution 1

You can't just compare SQL and CR - they have different purpose. SQL (in this context) is data source, CR is pretty output formatter. For excel you would need data, not formatted output. Excel combined with SQL can give you all CR options (dynamic crosstab reports, charts etc) what you can't get directly from SQL data. BTW, creating SQL views or procedures is often needed to overcome CR limitations; from this standpoint SQL has lot of more options than CR.

I personally would go with SQL+Excel route. In our company we're using simply SQL+CR without postprocessing, sometimes SQL+Excel. Our customers are using different approaches.

But like said by other people, choice of tools depends on more things. Who has to redesign reports? Who will maintain these reports? How often requirements change? Are there more uses for CR reports besides sourcing Excel tables? Who will be waked up at night, if reports do not work?

Solution 2

Management perpective: In many I will say mostly cases management does not know SQL. So if a manager for E.g.HR wants to know staus about something then how he will get that status?? This is where Crystal reports come into picture, Using crystal reports they do not have to worry about SQL; they will just enter required fields and get their data.

Programmer perspective: Simple data outputs can be achieved through SQL but consider a scenario where you need to pull details as well as summary. I agree it can be done via SQL but consider the overhead of time and proficiency required to develop such output using sql. I bet it wont be that easy to develop such output using sql as compared to crystal. So I will say learn both SQL and crystal, you will get to choose the tool to apply for your requirement.

Solution 3

You can write SQL and drop it into the Crystal Report. Best of both worlds, and possibly faster performance than the drag-and-drop Crystal functionality. You will see some response time lag when the report runs.

Solution 4

There are actually a few things that Crystal Reports can do that are very tricky using plain SQL Queries as Crystal Reports can access the entire dataset in a single formula and can do things at runtime.

However unless you have some really crazy complex Crystal Reports I would recommend building a tool in Excel that can one click the info straight into a new sheet.

I did this and it got me a promotion, not kidding :P

I have a custom Excel Addin I can give you code to that basically does this:

  • On open, connects to the database and downloads a list of menu options connected to views and procedures
  • Adds these menu options into a new Ribbon tab within Excel
  • When one is clicked, runs the view and dumps the entire dataset (properly formatted) into a new sheet

Advantage of this is you can update the main menu list and each view it references without making any changes to the file or re-issuing anything to everyone.

Share:
10,419
Admin
Author by

Admin

Updated on June 13, 2022

Comments

  • Admin
    Admin almost 2 years

    I'm a programmer (mostly C++) who has moved into a non-software workplace. However, I don't have much experience with database stuff at all.

    TL;DR: If we compare Crystal Reports to just writing scripts that execute SQL queries and parse the results, is there anything that CR can do that isn't possible via SQL queries & scripts? I'm talking purely in terms of extracting data - not making pretty documents.


    Detail:

    At my workplace they have a process where you run a bunch of Crystal Reports, modify the date range to the current month, manually export each to excel, delete the rows and columns that aren't needed, and then cut and paste into a summary excel document that is used by management.

    To me, this is pretty crazy and stupid. I'd like to automate/script most of it.

    So I have two options:

    • Learn Crystal Reports and try to modify the existing reports to be more automated.
    • Dump CR and just learn SQL and do the whole thing programmatically with scripts working with CSV files or something.

    I'd much rather learn SQL since it's more general and useful. But I need to be assured that I can get the data output that I need (without writing a million lines of code to reproduce CR myself.)

    So yeah, I'm looking for an answer like, "The two are equivalent. Anything you can do in CR you can do easily via scripts and SQL," or "If you need to group records into categories based on a parameter and then sum their one of their fields, then CR will do it much more easily than raw code," to push me in one direction or another.

    Edit: Some additional detail. At the moment my crystal reports run a database query, and then crystal does things like, "don't display the records that are returned, instead group the records by Field A and then display the count of how many records in each group."

    Is functionality like this difficult to reproduce via SQL coding? I wouldnt want to have to write a python (or whatever) script to parse and manipulate the data from plaintext CSV, for example.

  • Admin
    Admin over 10 years
    Thanks for your reply. Management here wont be using CR or anything so that's not a problem. When you say "details as well as summary", can you explain what you mean?
  • Admin
    Admin over 10 years
    Thanks for your reply. Not sure if I can get approval for additional software but it's worth a shot.
  • Admin
    Admin over 10 years
    Thanks for your reply. There's no need for pretty output at all, I just need numbers. Please see the edit at the end of my question - does your answer mean that I can easily reproduce such functionality via SQL coding?
  • yoka
    yoka over 10 years
    I think yes, you probably have to write only few relatively simple queries and query these from Excel.
  • Pratik Kaje
    Pratik Kaje over 10 years
    Lets take an example of a output which requires to show data of tenants living in a building with there details and the rent they are paying. At the end of output you need some summarised data like count of tenants who pay less than 1000$ rent, units which are vacant and occupancy percentage of the building...getting all this in one output is tough by just querying, I agree you will somehow bring this output by querying, but it is going to be tough. Crystal does the same thing in minutes!
  • Lan
    Lan over 10 years
    If you have license for SQLServer SSIS is free.