官术网_书友最值得收藏!

Generating constants with SELECT statements

During the development of a BI project, sometimes we need to use values which do not necessarily come from tables; these can be constants such as Data refreshed at or Today. The logical tables come in very handy for this purpose.

Getting ready

You can find the SELECT statement for this recipe in the companion code file.

How to do it...

To create a logical table that returns the current date as a constant, do the following:

  1. Go to the Schema Objects | Tables folder and right-click on an empty space in the right pane. From the context menu, choose New | Logical Table.
  2. In the SQL statement text area, paste this sentence:
    select DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) DateValue
    
  3. Add one Column Object and name it DateValue, and select Date from Data Type.
  4. Click on Save and Close and name it Today.
  5. Update the schema.

How it works...

We created a very simple table with one row and one column. This table will always return the current date at midnight; it is useful to filter records based on moving dates, or simply to display it in a report header. Moreover, since the table has only one row, we can join it anywhere without creating dangerous Cartesian products. Even with a CROSS JOIN, it will always multiply the results by one.

There's more...

In SQL Server constants are generated with a SELECT statement without the FROM clause. If you want to display Eat at Joe's, it's as simple as:

select "Eat at Joe's"

(Sorry, blinking font not included)

In other RDBMS, you may find a different syntax: in Oracle, for example, the current date at midnight can be obtained with the sentence:

SELECT TRUNC(SYSDATE) DateValue FROM DUAL;

And the logical table would work just the same.

See also

  • The Attribute forms – ID and DESC recipe in Chapter 3, Schema Objects – Attributes
主站蜘蛛池模板: 宁城县| 阿拉尔市| 南投县| 井冈山市| 松滋市| 新龙县| 榕江县| 博兴县| 林甸县| 明星| 大方县| 丰城市| 亚东县| 扶沟县| 庄河市| 德庆县| 汽车| 宝丰县| 新源县| 长汀县| 合水县| 延寿县| 汝南县| 崇左市| 岢岚县| 德兴市| 咸宁市| 新津县| 兰州市| 阳曲县| 二手房| 吴忠市| 乌拉特前旗| 中宁县| 基隆市| 浪卡子县| 安顺市| 南川市| 马尔康县| 黄平县| 吉首市|