What is the differance between a SQL expression field and a formula field

What is the difference between a sql expression and a formula field you can use a sql expression to hold a formula but is that the best way to do something, I think I am missing the big picture
Who is Participating?
Kurt ReinhardtConnect With a Mentor Sr. Business Intelligence Consultant/ArchitectCommented:
At a high level, they're conceptually the same.  Basically, each can create a derived field.  You can concatenate objects together, perform calculations, etc..  One major difference, however, is that most formulas cannot be passed to the database for processing. If you include them in your record selection criteria then you run the risk of them not being passed, all possible records being brought down from the database, across the network, and then filtering out extraneous records on the client.  A SQL Expression field, however, is ALWAYS processed on the database.

As an example, I recently had a client who wrote record selection along the lines of {@value} = {?param} where the value was a huge string field with 6 numeric values in the middle of the field that needed to be stripped out and converted to a number (an account number).  The idea of the report is that the user will enter an account number and pull back only those records that match.  The problem is the formula can't be evaluated until all possible results are returned.  In other words, the query pulled back records for all accounts (100k plus records) first, then filtered them out in Crystal after they were returned.

I wrote a SQL Expression that was the equivalent of the formula and changed the criteria to {%value} = {?param}.  This resulted in the report returning data in seconds, not several minutes, and much smaller recordset (<100) being returned from the database.

SQL expressions can be full-fledged SELECT statements (with a result of a single, distinct value) or can be as simple as performing an UPPERCASE function against a string field.

Here are some presentations I've given that include information on SQL Expression:

The Power and Possibilities of SQL Expressions: https://www.box.net/shared/i2jk8yohku

Pro Tips for Common Reporting Scenarios: https://www.box.net/shared/ysqmn7eov5

Example of a complex SQL Expression for a client (DB2 SQL): https://www.box.net/shared/cn5lstmcjc

msd1305Connect With a Mentor Commented:
Summary of differences:
- Formula field follows Crystal Syntax to write and evaluate the expressions
-SQL Expressions are written and evaluated in SQL syntaxes.

- You can not call Database functions using formula field
- You can call database functions using SQL expressions.

- You can not have running total on SQL expression fields.
- You can define running totals on Formula fields.

These are basic three differences.  The links rhinok provides are quite good and provide detailed information about the same.
GeorgeSaletAuthor Commented:
Both explanations are Great
Thank You
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.