<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6187727342258971212</atom:id><lastBuildDate>Mon, 02 Sep 2024 08:51:57 +0000</lastBuildDate><category>Multiload</category><title>Teradata SQL Reference</title><description></description><link>http://teradata-sql.blogspot.com/</link><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><generator>Blogger</generator><openSearch:totalResults>75</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-8731867979098898638</guid><pubDate>Sat, 21 Dec 2013 03:26:00 +0000</pubDate><atom:updated>2013-12-20T19:26:17.369-08:00</atom:updated><title>Skew Factor</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The data distribution of table among AMPs is called Skew Factor.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Generally for NUPI, we get duplicate values, so the more dulicate values you get the more the data will have the same row hash so all the same data will be loaded into same AMP. It makes data distribution inequality&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;One AMP will store more data and another AMP will store less data, when we access the full table, the AMP with more data will take longer time to retrive data and make other AMPs wait until it fetches data which leads to processing wastage.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;In this situation we should avoid full table scans.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/12/skew-factor.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-2591004019156654294</guid><pubDate>Wed, 10 Jul 2013 08:43:00 +0000</pubDate><atom:updated>2013-07-19T02:03:22.258-07:00</atom:updated><title>TPUMP How It Works</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;i&gt;TPump&lt;/i&gt;&lt;/b&gt; is similar to MLoad, TPump edits Teradata tables by processing insert, updates, and deletes.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;TPump performs updates on the Teradata Database in a synchronous manner. Changes are sent in conventional CLIv2 parcels and applied immediately to the target table(s). To improve its efficiency, TPump builds multiple statement requests and provides the serialize option to help reduce locking overhead.&lt;br /&gt;TPump, on the other hand, does better on relatively low volumes of changes because there is no temporary table overhead. TPump becomes expensive for large volumes of data because multiple updates to a physical data block will most likely result in multiple reads and writes of&amp;nbsp;&amp;nbsp;&amp;nbsp; the block.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;The most important technique used by TPump to improve performance over MultiLoad is the multiple statement request. Placing more statements in a single request is beneficial for two reasons. First, it reduces network overhead because large messages are more efficient than small ones. Secondly, (in ROBUST mode) it reduces TPump recovery overhead, which amounts to one extra database row written for each request. TPump automatically packs multiple statements into a request based upon the PACK specification in the BEGIN LOAD command.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Macros:&lt;/b&gt; TPump uses macros to efficiently modify tables, rather than using the actual DML commands. The technique of changing statements into equivalent macros before beginning the job greatly improves performance. Specifically, the benefits of using macros are: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;1. the size of network (and channel) messages sent to the RDBMS by TPump are reduced.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;2. RDBMS parsing engine overhead is reduced because the execution plans (or “steps”) for macros are cached and re-used. This eliminates “normal” parser handling, where each request sent by TPump is planned and optimized. Because the space required by macros is negligible, the only issue regarding the macros is where the macros are placed in the RDBMS. The macros are put into the database that contains the restart log table or the database specified using the MACRODB keyword in the&amp;nbsp; BEGIN LOAD command.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Locking and Transactional Logic&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; In contrast to MultiLoad, TPump uses conventional row hash locking which allows for some amount of concurrent read and write access to its target tables. At any point&amp;nbsp; TPump can be stopped and the target tables are fully accessible. Note however, that if TPump is stopped, depending on the nature of the update process, it may mean that the “relational” integrity of the data is impaired.&lt;br /&gt;&amp;nbsp;&amp;nbsp; This differs from MultiLoad, which operates as a single logical update to one or more target tables. Once MultiLoad goes into phase two of its logic, the job is &lt;br /&gt;&amp;nbsp;&amp;nbsp; “essentially” irreversible and the (entire set of) table(s) is locked for write access until it completes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Recovery Logic and Overhead&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; TPump, in “ROBUST mode”, writes one database row in the log restart table for every request that it issues. This collection of rows in the restart log table can be referred to as the request log. Because a request is guaranteed by the RDBMS to either completely finish or completely rollback, the request log will always accurately reflect the completion status of a TPump import. Thus, the request log overhead for restart logic decreases as the number of statements packed per request increases.&amp;nbsp;&amp;nbsp;&amp;nbsp; TPump also allows you to specify a checkpoint interval. During the checkpoint process TPump flushes all pending changes from the import file to the database and also cleans out the request log. The larger the checkpoint interval, the larger the request log (and its table) is&amp;nbsp; going to grow. Upon an unexpected restart, TPump scans the import data source along with the request log in order to re-execute the statements not found in the request log.&lt;br /&gt;&amp;nbsp;&amp;nbsp; TPump in “SIMPLE (non-ROBUST) mode”, provides basic checkpoints. If a restart occurs between checkpoints, then some requests will likely be reprocessed. This is adequate protection under some circumstances.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Serialization of Changes&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; In certain uses of TPump or MultiLoad it is possible to have multiple changes to one row in the same job. For instance, the row may be inserted and then updated during the batch job or it may be updated and then deleted. In any case, the correct ordering of these operations is obviously very important. MultiLoad automatically guarantees that this ordering of&amp;nbsp; operations is maintained correctly. By using the serialization feature, TPump can also guarantee that this ordering of operations is maintained correctly, but it requires some small amount of scripting work and a small amount of utility overhead.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Resource Usage and Limitations&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; A feature unique to TPump is the ability to constrain run-time resource usage through the statement rate feature. TPump gives you control over the rate per minute at which statements are sent to the RDBMS and the statement rate correlates directly to resource usage on both the client and in the RDBMS. The statement rate can be controlled in two ways, either dynamically while the job is running, or it can be scripted into the job with the RATE keyword on the BEGIN LOAD command. Dynamic control over the statement rate is provided by updates to a table on the RDBMS.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Operating Modes : &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; • Interactive – Interactive processing involves the more or less continuous participation of the user.&lt;br /&gt;&amp;nbsp;&amp;nbsp; • Batch – Batch programs process data in groups as per scheduled operations, typically in a separate operation,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rather than interactively or in real time.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/07/tpump-how-it-works.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-3586337787059941129</guid><pubDate>Mon, 08 Jul 2013 07:44:00 +0000</pubDate><atom:updated>2013-07-08T00:44:58.376-07:00</atom:updated><title>TPUMP Basics</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;&lt;b&gt;TPump&lt;/b&gt;&lt;/i&gt; is a data loading utility that helps you maintain (update, delete, insert, and atomic upsert) the data in your Teradata Database. &lt;b&gt;&lt;i&gt;Used to keep the target table updated continuously&lt;/i&gt;&lt;/b&gt; .. helps you achive near real time data in the data warehouse.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Concurrency&lt;/b&gt;: MultiLoad is limited to a maximum of 15 instances running concurrently. TPump does not impose this limit.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;TPump uses row hash locks rather than table level locks. This allows the users to run queries while TPump is running. This also means that TPump can be stopped instantaneously.&lt;br /&gt;Instead of updating Teradata Databases overnight, or in batches throughout the day, TPump updates information in real time, acquiring data from the client system with low processor utilization. It does this through a continuous feed of data into the data warehouse, rather than through traditional batch updates. Continuous updates result in more accurate, timely data.&lt;br /&gt;TPump provides a dynamic throttling feature, that we can specify the number of statements run per minute, or may alter throttling minute-by-minute.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;TPump’s main attributes are&lt;/b&gt;:&lt;br /&gt;&amp;nbsp; • &lt;i&gt;&lt;b&gt;Simple, hassle-free setup&lt;/b&gt;&lt;/i&gt; – does not require staging of data, intermediary files, or special hardware.&lt;br /&gt;&amp;nbsp; • &lt;i&gt;&lt;b&gt;Efficient, time-saving operation&lt;/b&gt;&lt;/i&gt; – jobs can continue running in spite of database restarts, dirty data, and network slowdowns. Jobs restart without intervention.&lt;br /&gt;&amp;nbsp; • &lt;i&gt;&lt;b&gt;Flexible data management &lt;/b&gt;&lt;/i&gt;– accepts an infinite variety of data forms from an infinite number of data sources, including direct feeds from other databases.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Resource Consumption&lt;/b&gt;: TPump has a built-in resource governing facility. This allows the operator to specify how many updates occur (the statement rate) minute by minute, and then change the statement rate, while the job continues to run. Thus, this facility can be used to increase the statement rate during windows when TPump is running by itself, but then decrease the statement rate later on, if users log on for ad hoc query access.&lt;br /&gt;&lt;br /&gt;The TPump task provides the acquisition of data from client files for application to target tables through INSERT, UPDATE, or DELETE statements that specify the full primary index.&lt;br /&gt;&amp;nbsp; • TPump examines all commands and statements for a task, from the BEGIN LOAD command through the END LOAD command, before actually executing the task.&lt;br /&gt;&amp;nbsp; • After all commands and statements involved in a given task have been processed and validated by TPump&lt;br /&gt;&amp;nbsp; • Optionally, TPump supports data serialization for a given row, which guarantees that if a row insert is immediately followed by a row update, the insert is processed first. This is done by hashing records to a given session.&lt;br /&gt;&amp;nbsp; • TPump supports bulletproof restartability using time-based checkpoints. Using frequent checkpoints provides a greater ease in restarting, but at the expense of the checkpointing overhead.&lt;br /&gt;&amp;nbsp; • TPump supports upsert logic similar to MultiLoad.&lt;br /&gt;&amp;nbsp; • TPump uses macros to minimize network overhead. Before TPump begins a load, it sends the statements to the Teradata Database to create equivalent macros for every insert/update/delete statement used in the job script.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The execute macro requests, rather than lengthy text requests, are then executed iteratively during a job run.&lt;br /&gt;&amp;nbsp; • TPump supports error treatment options, similar to MultiLoad.&lt;br /&gt;&amp;nbsp; • TPump runs as a single process&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/07/tpump-basics.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-980971117200815375</guid><pubDate>Thu, 04 Jul 2013 07:31:00 +0000</pubDate><atom:updated>2013-07-04T02:22:51.743-07:00</atom:updated><title>Data Modeling and Normal forms</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;i&gt;&lt;b&gt;Data modeling&lt;/b&gt;&lt;/i&gt; is a method used to define and analyze data requirements needed to support the business processes of an organization. The data requirements are recorded as a conceptual data model with associated data definitions. Actual implementation of the conceptual model is called a logical data model. To implement one conceptual data model may require multiple logical data models. Data modeling defines the relationships between data elements and structures. Data modeling is also a technique for defining business requirements for a database. It is sometimes called database modeling because a data model is eventually implemented in a database.&lt;br /&gt;Conceptual schema&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Logical schema&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Physical schema&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;Modeling methodologies:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;i&gt;&lt;b&gt;Bottom-up&lt;/b&gt;&lt;/i&gt; models are often the result of a reengineering effort. They usually start with existing data structures forms, fields on application screens, or reports. These models are usually physical, application-specific, and incomplete from an enterprise perspective.&lt;br /&gt;&lt;i&gt;Top-down&lt;/i&gt; logical data models are created in an abstract way by getting information from people who know the subject area. A system may not implement all the entities in a logical model, but the model serves as a reference point or template.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;Evaluation in organization use of data warehouses&lt;/b&gt;:&lt;br /&gt;&lt;i&gt;&lt;b&gt;Off line Operational Database&lt;/b&gt;&lt;/i&gt;&amp;nbsp; &lt;br /&gt;Data warehouses in this initial stage are developed by simply copying the data off an operational system to another server where the processing load of reporting against the copied data does not impact the operational system's performance. &lt;br /&gt;&lt;b&gt;&lt;i&gt;Off line Data Warehouse&lt;/i&gt;&amp;nbsp;&lt;/b&gt; &lt;br /&gt;Data warehouses at this stage are updated from data in the operational systems on a regular basis and the data warehouse data is stored in a data structure designed to facilitate reporting. &lt;br /&gt;&lt;i&gt;&lt;b&gt;Real Time Data Warehouse&lt;/b&gt;&lt;/i&gt;&amp;nbsp; &lt;br /&gt;Data warehouses at this stage are updated every time an operational system performs a transaction (e.g. an order or a delivery or a booking.) &lt;br /&gt;&lt;i&gt;&lt;b&gt;Integrated Data Warehouse&lt;/b&gt;&lt;/i&gt;&amp;nbsp; &lt;br /&gt;Data warehouses at this stage are updated every time an operational system performs a transaction and then generate transactions that are passed back into the operational systems. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dimension&lt;/b&gt;: A dimension is a data element that categorizes each item in a data set into non-overlapping regions.&lt;br /&gt;The primary function of dimensions is threefold: to provide filtering, grouping and labeling. For example, in a data warehouse where each person is categorized as having a gender of male, female or unknown, a user of the data warehouse would then be able to filter or categorize each presentation or report by either filtering based on the gender dimension or displaying results broken out by the gender.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;Types of dimension&lt;/b&gt;:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;i&gt;&lt;b&gt;Confirmed Dimension&lt;/b&gt;&lt;/i&gt;: Dimension connecting to multiple facts is called confirmed dimension. This dimension does not change with time. Some examples are time dimension, customer dimension and product dimension&lt;br /&gt;&lt;b&gt;&lt;i&gt;Junk Dimension&lt;/i&gt;&lt;/b&gt;: Consolidated dimension from several (two or more) smaller dimension is called junk dimension.&lt;br /&gt;&lt;b&gt;&lt;i&gt;Degenerated Dimension&lt;/i&gt;&lt;/b&gt;: Fact containing attribute from dimension is called degenerated dimension. Fact generally contains measure, but since one or more attribute of (to be) dimension is present inside this fact, it is treated as dimension.&lt;br /&gt;&lt;b&gt;&lt;i&gt;Role playing dimension&lt;/i&gt;&lt;/b&gt;:&amp;nbsp; Dimensions are often recycled for multiple applications within the same database. For instance, a "Date" dimension can be used for "Date of Sale", as well as "Date of Delivery", or "Date of Hire". This is often referred to as a "role-playing dimension".&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;Codd’s Rules for normalization&lt;/b&gt;:&lt;br /&gt;&lt;i&gt;&lt;b&gt;1NF&lt;/b&gt;&lt;/i&gt;:&amp;nbsp; Eliminate Repeating Groups - Make a separate table for each set of related attributes, and give each table a primary key.&lt;br /&gt;&lt;i&gt;&lt;b&gt;2NF&lt;/b&gt;&lt;/i&gt;:&amp;nbsp; Eliminate Redundant Data - If an attribute depends on only part of a multi-valued key, remove it to a separate table. To avoid update and delete anomalies!&lt;br /&gt;&lt;i&gt;&lt;b&gt;3NF&lt;/b&gt;&lt;/i&gt;:&amp;nbsp; Eliminate Columns Not Dependent On Key - If attributes do not contribute to a description of the key, remove them to a separate table.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/07/data-modeling-and-normal-forms.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-8872740899039484307</guid><pubDate>Mon, 01 Jul 2013 09:48:00 +0000</pubDate><atom:updated>2013-07-01T02:48:45.848-07:00</atom:updated><title>Bitmap Indexes</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Oracle's two major index types are Bitmap indexes and B-Tree indexes. B-Tree indexes are the regular type that OLTP systems make much use of, and bitmap indexes are a highly compressed index type that tends to be used primarily for data warehouses. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Characteristic of Bitmap Indexes &lt;/b&gt;&lt;br /&gt;@@For columns with very few unique values (low cardinality) &lt;br /&gt;Columns that have low cardinality are good candidates (if the cardinality of a column is &amp;lt;= 0.1 %&amp;nbsp; that the column is ideal candidate, consider also 0.2% – 1%) &lt;br /&gt;&lt;br /&gt;@@Tables that have no or little insert/update are good candidates (static data in warehouse)&lt;br /&gt;&amp;nbsp; &lt;br /&gt;@@Stream of bits: each bit relates to a column value in a single row of table &lt;br /&gt;create bitmap index person_region on person (region);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Region&amp;nbsp;&amp;nbsp; North&amp;nbsp;&amp;nbsp; East&amp;nbsp;&amp;nbsp; West&amp;nbsp;&amp;nbsp; South&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; North&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; East&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; West&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; West&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; South&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; North&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Advantage of Bitmap Indexes&lt;/b&gt; &lt;br /&gt;The advantages of them are that they have a highly compressed structure, making them fast to read and their structure makes it possible for the system to combine multiple indexes together for fast access to the underlying table. &lt;br /&gt;Compressed indexes, like bitmap indexes, represent a trade-off between CPU usage and disk space usage. A compressed structure is faster to read from disk but takes additional CPU cycles to decompress for access - an uncompressed structure imposes a lower CPU load but requires more bandwidth to read in a short time. &lt;br /&gt;One belief concerning bitmap indexes is that they are only suitable for indexing low-cardinality data. This is not necessarily true, and bitmap indexes can be used very successfully for indexing columns with many thousands of different values. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;Disadvantage of Bitmap Indexes &lt;/b&gt;&lt;br /&gt;The reason for confining bitmap indexes to data warehouses is that the overhead on maintaining them is enormous. A modification to a bitmap index requires a great deal more work on behalf of the system than a modification to a b-tree index. In addition, the concurrency for modifications on bitmap indexes is dreadful.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/07/bitmap-indexes.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-7301569491829424056</guid><pubDate>Mon, 01 Jul 2013 09:45:00 +0000</pubDate><atom:updated>2013-07-06T02:43:05.516-07:00</atom:updated><title>Oracle Procedures</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;A procedure or function is a schema object that consists of a set of SQL statements and other PL/SQL constructs, grouped together, stored in the database, and executed as a unit to solve a specific problem or perform a set of related tasks. Procedures and functions permit the caller to provide parameters that can be input only, output only, or input and output values. Procedures and functions allow you to combine the ease and flexibility of SQL with the procedural functionality of a structured programming language. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;b&gt;CREATE OR REPLACE PROCEDURE award_bonus&lt;/b&gt; (emp_id NUMBER, bonus NUMBER) AS&lt;br /&gt;commission REAL;&lt;br /&gt;comm_missing EXCEPTION;&lt;br /&gt;BEGIN -- executable part starts here&lt;br /&gt;SELECT commission_pct / 100 INTO commission FROM employees WHERE employee_id = emp_id;&lt;br /&gt;IF commission IS NULL THEN RAISE comm_missing;&lt;br /&gt;ELSE&lt;br /&gt;UPDATE employees SET salary = salary + bonus*commission&lt;br /&gt;WHERE employee_id = emp_id;&lt;br /&gt;END IF;&lt;br /&gt;EXCEPTION -- exception-handling part starts here&lt;br /&gt;WHEN comm_missing THEN&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('This employee does not receive a commission.');&lt;br /&gt;commission := 0;&lt;br /&gt;WHEN OTHERS THEN&lt;br /&gt;NULL; -- for other exceptions do nothing&lt;br /&gt;END award_bonus;&lt;br /&gt;/&lt;br /&gt;&lt;b&gt;Calling procedure from a package or procedure:&lt;/b&gt;&lt;br /&gt;CALL award_bonus(150, 400); &lt;br /&gt;&lt;b&gt;From SQL&lt;/b&gt;: EXECUTE award_bonus(150,400);&lt;br /&gt;If there is a error while&lt;b&gt; compiling a procedure&lt;/b&gt; then @ SQL prompt &amp;gt;&amp;gt; SHOW ERRORS PROCEDURE&lt;br /&gt;&lt;br /&gt;To drop a procedure @ SQL prompt: &lt;b&gt;drop procedure procedure_name;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/07/teradata-procedures.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-5124249867661063072</guid><pubDate>Mon, 01 Jul 2013 09:33:00 +0000</pubDate><atom:updated>2013-07-01T02:35:13.461-07:00</atom:updated><title>Teradata Synonyms</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;Simplify access to objects by creating a synonym (another name for an object). With synonyms, you can:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;• Ease referring to a table owned by another user&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;• Shorten lengthy object names&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;CREATE [PUBLIC] SYNONYM synonym FOR object; -- only DBA can drop a public synonym&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;To refer to a table owned by another user, you need to prefix the table name with the name of the user who created it followed by a period. Creating a synonym eliminates the need to qualify the object name with the schema and provides you with an alternative name for a table, view, sequence,&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;procedure, or other objects. This method can be especially useful with lengthy object names, such as views.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Guidelines&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;• The object cannot be contained in a package.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;• A private synonym name must be distinct from all other objects owned by the same user.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;• Create a shortened name for the DEPT_SUM_VU view. ---- &lt;b&gt;CREATE SYNONYM&lt;/b&gt; d_sum FOR dept_sum_vu;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;• Drop a synonym. ---- &lt;b&gt;DROP SYNONYM&lt;/b&gt; d_sum;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana,sans-serif;"&gt;In the Oracle server, the DBA can specifically grant the CREATE PUBLIC SYNONYM privilege to any user, and that user can create public synonyms.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2013/07/teradata-synonyms.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-8050431144140435002</guid><pubDate>Mon, 24 Dec 2012 16:56:00 +0000</pubDate><atom:updated>2012-12-24T08:56:26.960-08:00</atom:updated><title>TPUMP in Teradata</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;TPUMP is a flexible multi-session load utility.&amp;nbsp; The only characteristic of TPUMP that limits its use is its transaction oriented nature.&amp;nbsp; If the situation allows execution of Fastload or Multiload, these utilities will always outperform TPUMP in a large batch operation when measuring Teradata resource consumption and response time.&amp;nbsp; Consideration of TPUMP in a load scenario should occur before that of Fastload or Multiload.&amp;nbsp; Basically TPUMP has none of the disadvantages of Multiload (table locking, load slot usage, single amp operations), Fastload (empty table only, load slot usage), or BTEQ (no checkpointing or restartability).&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Best practices for the development of BTEQ Applications:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;ul&gt;
&lt;li&gt;Logtable and error tables are job specific.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The BTEQ clean up step drops the logtable and prepares the target table.&lt;/li&gt;
&lt;li&gt;The file layout section should completely define the input file.&amp;nbsp; .FILLER should be replaced with .FIELD and any null if logic should be completed in the DML section of the TPUMP.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If the script is doing complex updates, ROBUST ON is in the "BEGIN LOAD" statement.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If the script is doing a high volume (due to high pack and/or sessions) of simple inserts and the checkpoint is not 1, ROBUST ON is in the "BEGIN LOAD" statement.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The PACK factor is lower than the maximum (32K block). You will receive a warning if it is too high.&lt;/li&gt;
&lt;li&gt;SERIALIZE is on for UPSERT scripts.&lt;/li&gt;
&lt;li&gt;If maintaining a table without a unique primary index (a NUPI), you probably need to use the SERIALIZE ON feature to prevent blocking.&lt;/li&gt;
&lt;li&gt;When using SERIALIZE ON, be sure to type ‘KEY’ next to each of the primary index fields in the INFILE_LAYOUT section.&lt;/li&gt;
&lt;li&gt;All dates are formatted.&lt;/li&gt;
&lt;li&gt;All 6 digit dates in non characters fields are converted to char(06) so sliding date rule can be applied properly.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The # of sessions are appropriate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/12/tpump-in-teradata.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-1624622139731669726</guid><pubDate>Sat, 22 Dec 2012 10:41:00 +0000</pubDate><atom:updated>2012-12-22T02:41:23.081-08:00</atom:updated><title>No Primary Index Tables</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The syntax for the CREATE TABLE statement has been changed to permit user data tables to be created without a primary index. Such tables are referred to as &lt;b&gt;&lt;i&gt;NoPI&lt;/i&gt;&lt;/b&gt; (No Primary Index) tables.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;This feature provides a performance advantage when using FastLoad or TPump Array INSERT to load data into staging tables. Because NoPI staging tables have no row-ordering constraints, the system can always append rows to the end of a NoPI table. Rows in a NoPI table can also be stored on any AMP, which is advantageous for TPump Array INSERT operations because many rows can then be packed into a single AMP step, thus dramatically reducing the performance burden on both CPU and I/O. After a NoPI staging table has been populated, the table can be processed further using SQL DML statements such as DELETE, INSERT, and SELECT.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;While using a NoPI table, you can:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• Manipulate rows directly using most SQL DML statements or you can move its rows into a primary-indexed target table using INSERT… SELECT, MERGE, or UPDATE…FROM SQLs.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• Create unique secondary indexes to avoid full-table scans during row access. For example, while single-AMP retrieval of NoPI rows by means of their primary index is not possible, you can work around this through the appropriate assignment of unique secondary indexes (USIs) to NoPI tables, and by careful construction of request conditions to specify those USIs to access individual NoPI table rows.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• Create nonunique secondary indexes (NUSIs) to facilitate set processing retrieval of rows from NoPI tables.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• Avoid full-table scans when deleting a set of rows from a NoPI table by assigning&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;secondary indexes and specifying them in your request conditions.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Benefits.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• Enhanced performance for FastLoad bulk data loads into staging tables.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• Enhanced performance for TPump Array INSERT minibatch loads into staging tables.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Points to note:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• The absence of a primary index or secondary index in NoPI tables means that all row access is done using full-table scans.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• The drawback to using secondary indexes for NoPI tables is that while they can enhance query processing significantly, they can also reduce load performance.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• You cannot modify a NoPI table using SQL UPDATE or UPSERT.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• This feature introduces a new DBS Control flag, PrimaryIndexDefault, that determines the behavior of a CREATE TABLE statement that does not explicitly specify any of the following:&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• PRIMARY INDEX clause&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• NO PRIMARY INDEX clause&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;• PRIMARY KEY or UNIQUE constraints&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/12/no-primary-index-tables.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-325891100143834251</guid><pubDate>Mon, 26 Nov 2012 16:50:00 +0000</pubDate><atom:updated>2012-11-26T08:55:36.531-08:00</atom:updated><title>Derived Tables</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;
&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;em&gt;&lt;strong&gt;Derived tables&lt;/strong&gt;&lt;/em&gt; can be a powerful technique to produce efficient 
queries, but they can also cause major performance problems when used in 
inappropriate situations.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;strong&gt;Here are some guidelines for the use of derived 
tables&lt;/strong&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
Never use a derived table to simply restrict the records of a large 
table prior to joining it to some other table. Doing this prevents the optimizer 
from using statistics on the table when it is subsequently joined to another 
table, since the derived table is pulled into a spool file, and this spool file 
will not have statistics available to the optimizer to prepare downstream 
joins.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
Do not use a derived table composed of a query which contains the same 
tables that are joined outside the derived table unless you have to perform 
aggregation or some other operation within the derived query that cannot be 
performed against those tables in the base query.&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&amp;nbsp; &lt;br /&gt;
A permissible example 
would be a derived table which gets the keys of the latest records in a table 
(e.g. max(Txn_Date)) and is joined to the same table in the base query to get 
the latest records.&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
Use of a derived table may be appropriate when it 
significantly reduces the complexity/increases the readability of a query.&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
An 
example is the use of a derived table in from clause of an update statement.  
This is the recommended way to write an update.&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
General approach should be 
use of temporary tables instead of derived table if the expected dataset or 
involved table(s) have more then 250K records (1000 rows AMP * 240 AMPs). &lt;/div&gt;
&lt;/span&gt;&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Use Derived Tables in Updates:&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;It can significantly reduce 
query complexity and improve performance and readability if updates are written 
with from clause as a derived table.  This is particularly useful when there are 
many table involved in the query. For example&lt;br /&gt;Instead of:&lt;br /&gt;UPDATE 
TB1&lt;br /&gt;FROM &lt;br /&gt;                Table1                  TB1     &lt;br /&gt;        
,       Table2                  TB2     &lt;br /&gt;        ,       
Table3                  TB3     &lt;br /&gt;        ,       Table4                  
TB4     &lt;br /&gt;&lt;br /&gt;SET             TB1.COL3 = TB4.COL3&lt;br /&gt;&lt;br /&gt;WHERE   TB1.COL1 = 
TB2.COL1&lt;br /&gt;AND             TB1.COL2 = TB3.COL2&lt;br /&gt;AND             TB2.COL1 = 
TB3.COL1&lt;br /&gt;AND             TB2.COL1 = TB4.COL1&lt;br /&gt;AND             TB2.COL4 = 
123  ; &lt;/span&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;This is preferred:&lt;br /&gt;UPDATE Table1 &lt;br /&gt;FROM&lt;br /&gt;(       
SELECT&lt;br /&gt;                        TB2.COL1&lt;br /&gt;                ,       
TB3.COL2&lt;br /&gt;                ,       TB4.COL3&lt;br /&gt;        FROM&lt;br /&gt;                
Table2                                  TB2&lt;br /&gt;        INNER 
JOIN&lt;br /&gt;                Table3                                  
TB3&lt;br /&gt;                        ON              TB2.COL1 = TB3.COL1&lt;br /&gt;        
INNER JOIN&lt;br /&gt;                Table4                                  
TB4&lt;br /&gt;                        ON              TB2.COL1 = TB4.COL1&lt;br /&gt;        
WHERE           TB2.COL4 = 123&lt;br /&gt;) XXX&lt;br /&gt;&lt;br /&gt;SET Table1.COL3 = 
XXX.COL3&lt;br /&gt;&lt;br /&gt;WHERE   Table1.COL1 = XXX.COL1&lt;br /&gt;AND             Table1.COL2 = 
XXX.COL2;&lt;/span&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Whilst the code may be longer, the select which obtains the rows to 
be updated can be prototyped in isolation of the update, and therefore can also 
be individually tuned separate to the update.  Logic errors that might be hidden 
in an all-in-one update statement become much more visible when written as a 
derived query.&lt;/span&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Derived tables can be a powerful technique to produce 
efficient queries, but inappropriate usage can cause performance 
problems.&lt;/span&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;strong&gt;Guidelines for the use of derived tables&lt;/strong&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div _fallwcm="1" class="bdyItmPrt" style="text-align: justify;"&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Use of a derived table may be appropriate when it significantly reduces the complexity/increases the readability of a query. An example is the use of a derived table in from clause of an update statement. This is the recommended way to write an update ( Use Derived Tables in Updates above).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;The general approach should be use of temporary tables instead of derived table if the expected dataset or involved table(s) have more then 250K records (1000 rows/AMP * 240 AMPs). &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/11/derived-tables.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-616590430928220870</guid><pubDate>Wed, 07 Nov 2012 16:19:00 +0000</pubDate><atom:updated>2012-11-26T08:56:09.887-08:00</atom:updated><title>Explain Plan in Teradata</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;When developing queries, always perform “An explain” on the query before you run it. &amp;nbsp;Explains can give a lot of information the way optimizer will execute a query.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;To perform an “Explain”, simply add the explain keyword prior to your select/ insert/ update/ delete statement and execute it.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The Explain statement is used to aid in identifying potential performance issues, it analyses the SQL and breaks it down into its low level process. Unfortunately the output can be very difficult to understand for an untrained person, but there are some points to recognize: Confidence Level and Product Joins.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Confidence Level&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Customer attempts to predict the number of rows which will result at each stage in the processing, and will qualify the prediction with a confidence level as shown below:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;· &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; No Confidence – There is no statistics available.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;· &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Low Confidence – Statistics are difficult to use precisely.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;· &amp;nbsp; &amp;nbsp; &amp;nbsp; High Confidence - Optimizer is sure of the results based on the stats available.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Explain Select * from &amp;nbsp; DB1.Table1;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;It will produce output like this:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1) First, we lock DB1.Table1 for access.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2) Next, we do an all-AMPs RETRIEVE step from&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;DB1.Table1 by way of an all-rows scan&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;with no residual conditions into Spool 1, which is built locally&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;on the AMPs. &amp;nbsp;The size of Spool 1 is estimated with high&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;confidence to be 141 rows. &amp;nbsp;The estimated time for this step is&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;0.15 seconds.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; 3) Finally, we send out an END TRANSACTION step to all AMPs involved&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;in processing the request.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; -&amp;gt; The contents of Spool 1 are sent back to the user as the result of&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;statement 1. &amp;nbsp;The total estimated time is 0.15 seconds.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Whilst this output is not all that user friendly (especially for complex queries) a number of useful things are present in the output, including a total estimated time to run the query, the join methods used, and the confidence levels that the optimizer has used while calculating number of rows/elapsed time that the query steps will take.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The best way to use “Explain" is to compare how your changes are affecting the way a query will run. &amp;nbsp;Do this by changing the query a little at a time observing how your changes affect the complexity and total estimated time of the “Explain”.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;REMEMBER TO ENSURE STATS HAVE BEEN COLLECTED ON PI, JOIN AND SELECTION COLUMNS!&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;If stats are not present for the required columns, one can notice a number of Low Confidence estimations in the Explain. &amp;nbsp;See the statistics section of this document for further information on checking stats have been collected, and arranging their collection/refresh.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/11/explain-plan-in-teradata.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-502393208217598893</guid><pubDate>Tue, 30 Oct 2012 17:19:00 +0000</pubDate><atom:updated>2012-11-06T10:02:53.421-08:00</atom:updated><title>Advantages of OLAP Functions over Subqueries in Teradata</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Significance
of OLAP Features:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol start="1" type="1"&gt;
&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Execution
     Time of the Query is minimized to a significant level after using OLAP
     features.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Less
     complex query can be formulated by OLAP functions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.5in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Description
of the table [PRDT_RECVD_DT_TBL] used:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Table contains the 5 columns namely
PRODUCT, BRAND, CATEGORY, SALES_CENTER (i.e Store), PRDT_RCVD_DATE. Consider
'Product, Brand, Category' as a MERCHANDISE.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;High level
Requirement Specification:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Ultimate Goal is to compute the
Earliest Product Received Date. Earliest Product Received Date is the most
recent date when majority of the sales center received the goods at the
Merchandise level.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Code level Specification:&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;We need to build a table containing
Merchandise with its Earliest Product Received Date from the source table which
has only product received date [PRDT_RCVD_DATE].&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Earliest Product Received Date&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;is
the date when particular Merchandise is received by maximum number of SALES
CENTERS (read as STORES). For particular Merchandise, if the maximum number of
SALES CENTERS is same for two different PRDT_RCVD_DATEs then we should take the
earliest date.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;For Example - If the product is
received at 1000 different stores on 2 different dates say on 11/01/2010 &amp;amp;
15/01/2010, then the query should return 11/01/2010[earliest date amongst the
two dates] as Earliest Product Received Date.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;OLAP Features Used:&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;We have
used the following OLAP features in our module to enhance the performance of
the query.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;QUALIFY&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;clause allows restriction of rows to
be output in the final result. In the below query, the QUALIFY clause restricts
the output to be based on product received by majority of the&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;STORES&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;and latest&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;PRODUCT RECEIVED DATE&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;and return the first&lt;b&gt;STORE&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;satisfying this criteria.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;PARTITION&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;BY&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;clause may be used in conjunction with
a&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;RANK&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;function to change the scope of the
ranking. PARTITION BY clause controls scope, i.e., rank sales within store. In
the below query, the scope limits to&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;MERCHANDISE&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;RANK&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;()&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;OVER&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;ORDER&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;BY&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;clause is used to assign the ranking
sequence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0.25in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Implementation of the above
requirement with OLAP Functions:&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT DISTINCT A.PRODUCT, A.CATEGORY,
A.BRAND, A.PRDT_RCVD_DATE AS ERLST_RCVD_DATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;FROM&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;SELECT A.PRODUCT, A.CATEGORY, A.BRAND,
PRDT_RCVD_DATE,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;COUNT(*)
OVER(PARTITION BY A.PRODUCT, A.CATEGORY,&amp;nbsp;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;A.BRAND, A.PRDT_RCVD_DATE)&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;AS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;SLSCNTR_COUNT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;FROM PRDT_RECVD_DT_TBL A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;) A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;QUALIFY RANK() OVER (PARTITION BY
A.PRODUCT, A.CATEGORY, A.BRAND ORDER BY SLSCNTR_COUNT DESC, PRDT_RCVD_DATE
ASC)=1&lt;/b&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Execution time:&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;9 min 14 sec&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Implementation of the above
requirement without OLAP Functions:&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT T1.PRODUCT AS PRODUCT,
T1.CATEGORY AS CATEGORY, T1.BRAND AS BRAND, MIN (T1.PRDT_RCVD_DATE) AS
ERLST_RCVD_DATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;FROM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;(SELECT PRODUCT, CATEGORY, BRAND,
PRDT_RCVD_DATE,&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;COUNT (SALES_CENTER) AS
SLSCNTR_COUNT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;FROM PRDT_RECVD_DT_TBL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;GROUP BY PRODUCT, CATEGORY,
BRAND, PRDT_RCVD_DATE) T1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;WHERE (T1.PRODUCT, T1.CATEGORY,
T1.BRAND,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;T1.SLSCNTR_COUNT) IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;(SELECT T2.PRODUCT, T2.CATEGORY,
T2.BRAND,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;MAX (T2.SLSCNTR_COUNT)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;FROM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;(SELECT PRODUCT, CATEGORY,
BRAND,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;PRDT_RCVD_DATE, COUNT (SALES_CENTER)
AS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;SLSCNTR_COUNT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;FROM PRDT_RECVD_DT_TBL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GROUP
BY PRODUCT, CATEGORY, BRAND,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;PRDT_RCVD_DATE) T2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;GROUP BY T2.PRODUCT,
T2.CATEGORY, T2.BRAND)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;GROUP BY T1.PRODUCT, T1.CATEGORY,
T1.BRAND&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Execution Time:&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Executed
till 11 minutes&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;and then aborted
with spool space error as the query is space intensive.&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Test the above query:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Create the sample table with the below
CREATE statement. Load the table with the DATALOAD statements that follow &amp;amp;
then one can test.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Table Creation:&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;CREATE SET TABLE&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;PRDT_RECVD_DT_TBL,&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;NO FALLBACK,&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;NO BEFORE JOURNAL,&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;NO AFTER JOURNAL,&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;CHECKSUM = DEFAULT&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;PRODUCT BYTEINT NOT NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;SALES_CENTER SMALLINT NOT NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;CATEGORY INTEGER NOT NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;BRAND SMALLINT NOT NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;PRDT_RCVD_DATE DATE FORMAT
'MM/DD/YYYY'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;PRIMARY INDEX&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;(PRODUCT, SALES_CENTER, CATEGORY, BRAND);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Insert Query to load the tables:&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Table:&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;/b&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '777409' , '158' , '10/11/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '778878' , '158' , '05/16/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '1478213' , '158' , '07/25/2000' );&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2768695' , '398' , '10/18/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2771103' , '380' , '10/10/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2772580' , '398' , '09/20/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2772614' , '323' , '09/20/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2785590' , '2220' , '10/11/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2790228' , '3145' , '10/05/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2790228' , '2402' , '10/05/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '1' , '9101' , '2790368' , '2048' , '10/05/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2026201' , '2048' , '12/04/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2690576' , '1123' , '10/16/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2691160' , '4515' , '10/16/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2691160' , '4473' , '10/16/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2691202' , '4507' , '09/08/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2692200' , '1040' , '12/09/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2768398' , '398' , '08/01/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2781714' , '596' , '10/10/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2781722' , '5967' , '10/10/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2781748' , '554' , '10/10/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;INSERT INTO&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;PRDT_RECVD_DT_TBL
(PRODUCT,SALES_CENTER,CATEGORY,BRAND,PRDT_RCVD_DATE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VALUES&lt;/b&gt;( '4' , '9104' , '2781748' , '554' , '11/10/2000' );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;Result:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 4.65pt; text-align: justify; width: 388px; word-wrap: normal;"&gt;
 &lt;tbody&gt;
&lt;tr style="height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;
  &lt;td nowrap="" style="border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;PRODUCT&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;CATEGORY&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;BRAND&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;ERLST_RCVD_DATE&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 1;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;777409&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;158&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/11/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 2;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;778878&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;158&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;5/16/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 3;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1478213&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;158&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;7/25/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 4;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2768695&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;398&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/18/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 5;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2771103&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;380&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/10/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 6;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2772580&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;398&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;9/20/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 7;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2772614&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;323&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;9/20/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 8;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2785590&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2220&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/11/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 9;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2790228&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2402&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/5/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 10;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2790228&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;3145&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/5/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 11;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2790368&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2048&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/5/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 12;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2026201&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2048&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;12/4/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 13;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2690576&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1123&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/16/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 14;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2691160&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4473&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/16/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 15;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2691160&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4515&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/16/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 16;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2691202&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4507&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;9/8/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 17;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2692200&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1040&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;12/9/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 18;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2768398&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;398&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;8/1/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 19;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2781714&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;596&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/10/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 20;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2781722&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;5967&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;10/10/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style="height: 15.0pt; mso-yfti-irow: 21; mso-yfti-lastrow: yes;"&gt;
  &lt;td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;" valign="bottom" width="123"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;" valign="bottom" width="79"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2781748&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 39.0pt;" valign="bottom" width="52"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;554&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.0pt;" valign="bottom" width="135"&gt;&lt;div class="MsoNormal" style="text-align: right;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;11/10/2000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/10/advantages-of-olap-functions-over.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-5167663767586145929</guid><pubDate>Wed, 17 Oct 2012 18:09:00 +0000</pubDate><atom:updated>2012-10-17T11:09:05.555-07:00</atom:updated><title>Teradata Date and Time functions</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
The following are the date and time functions in Teradata.&lt;br /&gt;
&lt;br /&gt;
DATE or CURRENT_DATE - &amp;nbsp;Both displays current date.&lt;br /&gt;
ADD_MONTHS(date,3) - Add 3 months to the current date.&lt;br /&gt;
ADD_MONTHS(date, -2)- Subtract 2 months from the current date.&lt;br /&gt;
TIME or CURRENT_TIME - Both displays current time.&lt;br /&gt;
EXTRACT( Day FROM Date)- Extracts and displays the day.&lt;br /&gt;
EXTRACT(Month FROM Date) - Extracts and display month.&lt;br /&gt;
EXTRACT(Year FROM Date) - Extracts and displays year.&lt;br /&gt;
CURRENT_TIMESTAMP - Displays combination of both date and time.&lt;br /&gt;
EXTRACT( Hour FROM Time) - Extracts and displays hour.&lt;br /&gt;
EXTRACT( Minute FROM Time) - Extracts and displays Minute.&lt;br /&gt;
EXTRACT( Second FROM Time) - Extracts and displays Second.&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/10/teradata-date-and-time-functions_17.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-6203811119096066448</guid><pubDate>Sat, 13 Oct 2012 13:45:00 +0000</pubDate><atom:updated>2012-10-13T07:00:40.620-07:00</atom:updated><title>What is the Criteria to choose best Primary Index ?</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Be careful while choosing the primary index because it affects the data storage and performance.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The following are the important tips while choosing the primary index.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1. Data Distribution.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;You need to analyze the number of distinct values in the table . If the primary index of the table contains less number of null values and more distinct values,it will give better the performance.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2. Access frequency.&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The column has to be frequently used in the where clause during the row selection.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The column should be that which is frequently used in join process.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;3. Volatility&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The column should not be frequently changed.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/10/what-is-criteria-to-choose-best-primary.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-8384096887641536988</guid><pubDate>Sat, 13 Oct 2012 08:04:00 +0000</pubDate><atom:updated>2012-11-26T22:48:20.242-08:00</atom:updated><title>Decimal datatype issue with BTEQ</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Suppose if you have a table called employee having column salary declared as decimal(35,0).&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Query: Select salary from employee;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;
&lt;/span&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The above query works fine in SQL Assistant. But if you try to run using BTEQ, the output contains decimal point(dot) &amp;nbsp;at the end. See below.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
salary&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
******&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
98765432109876543210987654321098765432&lt;b&gt;.&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
If you can try FORMAT '99999......999999' , you will get error because format allows only 30 digits. Alternative solution for this problem is&amp;nbsp;&lt;span style="text-align: left;"&gt;use FORMAT 'Z(35)' or FORMAT '9(35)' instead of Decimal(35,0) to avoid dot at the end of the output if your query is running through BTEQ.&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/10/decimal350-datatype-issue-with-bteq.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-3759632534602058659</guid><pubDate>Wed, 04 Jul 2012 19:09:00 +0000</pubDate><atom:updated>2012-07-04T12:13:38.458-07:00</atom:updated><title>NULLIF function</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Verdana, sans-serif; text-align: justify;"&gt;If its arguments are equal,NULLIF returns NULL , else it returns its first argument, scalar_expression_1.&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;For the following full CASE expression NULLIF is a shorthand expression :&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;CASE &amp;nbsp;WHEN scalar_expression_1=scalar_expression_2 &amp;nbsp;THEN NULL &amp;nbsp;ELSE scalar_expression_1 &amp;nbsp;END&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The following examples show queries on the following table:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;CREATE TABLE Membership&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;(FullName CHARACTER(39)&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;,Age SMALLINT&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;,Code CHARACTER(4) );&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Example 1:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The following is the Teradata SQL NULLIFZERO(Age) function ANSI- compliant form of theand is more versatile.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT FullName, NULLIF (Age,0) FROM Membership;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Example 2:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;In the following query, blanks indicate no value.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT FullName, NULLIF (Code, ' ') FROM Membership;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Example 3:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The following example uses NULLIF in an expression with an arithmetic operator.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT NULLIF(Age,0) * 100;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/07/nullif-function.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-1992107485725192403</guid><pubDate>Sat, 23 Jun 2012 20:22:00 +0000</pubDate><atom:updated>2012-06-23T13:23:13.732-07:00</atom:updated><title>List of Interview Questions On Collect Statistics</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;1.Suppose if &amp;nbsp;collect stats is created on table , we can delete the data of the table by using delete statement those collect stats also be deleted or not?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Ans: No collect stats will not be deleted on table. We need to drop it manually by using DROP COLLECT STATISTICS statement.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;2.Where these Collect statistics are actually stored?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Ans: &amp;nbsp;Collect Statistics are stored in DBC views like IndexStats,ColumnStats and MultiColumnStats.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;3.What is the purpose of Collect Statistics Command?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Ans: &amp;nbsp;The purpose &amp;nbsp;is to gather and store demographic data for indices or join index or one or more columns of a table. If you want optimizer to use high confidence, You should create COLLECT STATISTICS on columns or indices&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/06/list-of-interview-questions-on-collect.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-9089905787525204822</guid><pubDate>Fri, 22 Jun 2012 07:06:00 +0000</pubDate><atom:updated>2012-11-27T09:03:26.062-08:00</atom:updated><title>Advantages of Partition Primary Index</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;· Range queries eliminates the use of Full Table Scan.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;· PPI is an alternate to secondary index, it provides an excellent solution compared to secondary indexes&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;. PPI can make modeling and querying easier.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;· We can't use fastload and multiload with all secondary indexes, But we an &amp;nbsp;use Fastload and Multiload work with PPI tables.&lt;/span&gt;&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/06/advantages-of-partition-primary-index.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-5242804085799210282</guid><pubDate>Sat, 16 Jun 2012 19:36:00 +0000</pubDate><atom:updated>2012-06-21T04:33:26.166-07:00</atom:updated><title>The POSITION Function</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Verdana, sans-serif; text-align: justify;"&gt;The &lt;b&gt;&lt;i&gt;POSITION function&lt;/i&gt;&lt;/b&gt; Returns the actual position of the character which occurs first. POSITION function is ANSI standard.&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Teradata has an equivalent function called INDEX.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Both the POSITION and INDEX functions returns position of character's first&amp;nbsp;occurrence&amp;nbsp;in a string.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Examples for the POSITION function&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT POSITION( 'u' IN 'formula'); &amp;nbsp;Displays Result as '5'&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT POSITION( 'fo' IN 'formula'); Displays Result as '1'&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT POSITION( 'e' IN 'formula'); &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Displays Result as '0'&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Examples for the INDEX function.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT INDEX('formula', 'u'); &amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Displays Result as '5'&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT INDEX('formula', 'mu'); &amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Displays Result as '4'&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT INDEX('formula', 'e'); &amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Displays Result as '0'&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/06/position-function.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-107781720200091072</guid><pubDate>Fri, 15 Jun 2012 20:23:00 +0000</pubDate><atom:updated>2012-06-22T01:27:59.192-07:00</atom:updated><title>MERGE INTO Statement</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The &lt;b&gt;&lt;i&gt;MERGE INTO&lt;/i&gt;&lt;/b&gt; statement 'merges' a source row into a target table based on whether any rows in the target table match a specified condition with the source row.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;MERGE INTO&lt;/i&gt;&lt;/b&gt; replicates the functionality of the Upsert capability provided by the UPDATE with INSERT option. This option updates a row if it exists and inserts the row if it does not exists.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b style=" font-family: Verdana, sans-serif; text-align: left;"&gt;Example 1:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Add a new row for Department 700 using the MERGE INTO form of Upsert.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;MERGE INTO department&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;USING VALUES (700,'Shipping',800000.00)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AS Dept (deptnum, dept_name, budgamt)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;ON Dept.deptnum =&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;dept_num&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHEN MATCHED THEN UPDATE&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SET budget_amount = Dept.budgamt&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHEN NOT MATCHED THEN INSERT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;VALUES (Dept.deptnum, Dept.dept_name,Dept.budgamt,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;dept_num&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;AS Dept&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;, department_name (CHAR(10))AS Dept_Name&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;, budget_amount&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;, manager_employee_number&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;FROM department&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHERE&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;dept_num&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;= 700;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; Dept &amp;nbsp;Dept_Name &amp;nbsp; &amp;nbsp;budget_amount &amp;nbsp;manager_employee_number&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; ------ &amp;nbsp;---------- &amp;nbsp; &amp;nbsp; &amp;nbsp;------------------ &amp;nbsp; -----------------------&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp;700 &amp;nbsp;Shipping &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;800000.00 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Things to notice about this example:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;This example does an insert of a 'Shipping' department row.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;The USING clause defines the source row to be merged.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;The AS clause defines the name of the temporary source table and columns which contain the source row. This is also referred to as the 'correlation table'.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;The ON clause followed by condition returns the matching rows in both the source and target tables.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;It must use the primary index of the target table.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;If the Primary Index is non-unique, additional qualifying conditions are required to reduce the test to a single target row.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Example 2:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Update the budget for Department 700 to be $9,900,000 using the MERGE INTO form of Upsert.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;MERGE INTO department&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;USING VALUES (700,'Shipping',9900000.00) AS Dept (deptnum, dept_name, budgamt)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;ON Dept.deptnum = dept_num&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHEN MATCHED THEN UPDATE&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SET budget_amount = Dept.budgamt&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHEN NOT MATCHED THEN INSERT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;VALUES (Dept.deptnum, Dept.dept_name,Dept.budgamt,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;dept_num&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;AS Dept&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;, department_name (CHAR(10))AS Dept_Name&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;, budget_amount&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;, manager_employee_number&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;FROM department&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHERE&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;dept_num&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;= 700;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; Dept &amp;nbsp;Dept_Name &amp;nbsp; &amp;nbsp;budget_amount &amp;nbsp;manager_employee_number&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; ------ &amp;nbsp;------------ &amp;nbsp; &amp;nbsp;------------------ &amp;nbsp; ---------------------------------&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; 700 &amp;nbsp; &amp;nbsp;Shipping &amp;nbsp; &amp;nbsp; &amp;nbsp; 9900000.00 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Things to notice about this example:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; This example does an update of the previously inserted 'Shipping' department row.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/06/merge-into-statement.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-1336840579314107080</guid><pubDate>Tue, 12 Jun 2012 19:19:00 +0000</pubDate><atom:updated>2012-06-21T05:05:17.940-07:00</atom:updated><title>Hashing Algorithm</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Verdana, sans-serif; text-align: justify;"&gt;When the primary index value of a row is input to the &lt;/span&gt;&lt;b style="font-family: Verdana, sans-serif; text-align: justify;"&gt;&lt;i&gt;hashing algorithm&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif; text-align: justify;"&gt;, then the output is called the “&lt;/span&gt;&lt;b style="font-family: Verdana, sans-serif; text-align: justify;"&gt;&lt;i&gt;row hash&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif; text-align: justify;"&gt;”. Row hash is the logical storage address of the row, and identifies the amp of the row. Also, the “table id” plus the row hash identifies the cylinder and data block, and is used for row distribution, placement and retrieval of the row. Based on the row hash uniqueness, data distribution happens.&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The “table id” is a sequential number assigned whenever a table is created. This number changes whenever a table is re-created.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;“Hash code redistribution” is used in join operation. This is used when the foreign key (join column) of a table (i.e. table A) is joined to a primary index of another table (i.e. table B). For each table A row, the row hash of the foreign key is calculated. Then, the table A row is sent to the amp dictated by the row hash, which is the same amp that contains table B’s row for that row hash.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;“Join column hash code sequence” is the result of a sorting. The row hash of the foreign key (join column) of a table (i.e. table A) is sorted into this sequence. These are matched in sequence to the other table (i.e. table B) on the same amp.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/06/hashing-algorithm.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-846492184637563716</guid><pubDate>Wed, 23 May 2012 16:50:00 +0000</pubDate><atom:updated>2012-05-26T11:07:31.908-07:00</atom:updated><title>User Defined Functions</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Create Function:&amp;nbsp;&lt;/b&gt;compile, link and add a new function to a database a function.Create Function privilege- enables user to Create a function.This privilege is not granted automatically and must be granted explicitly.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Syntax: GRANT CREATE FUNCTION ON Developer1 TO Developer1;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Allows ‘Developer1’ to create functions in their own database.&lt;/span&gt;&lt;br /&gt;
&lt;b style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b style="font-family: Verdana, sans-serif;"&gt;Drop Function:&amp;nbsp;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;removes the function by not linking from its shared library.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Drop Function privilege - enables user to DROP or REPLACE a previously created function.Granted automatically WITH GRANT OPTION to the creator of a database or function.Granted automatically to a database or user when it is created.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Syntax: GRANT DROP ON SPECIFIC FUNCTION Parse_Text TO develop1.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Allows ‘develop1’ to drop or replace the Parse_Text function..&lt;/span&gt;&lt;br /&gt;
&lt;b style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style="font-family: Verdana, sans-serif;"&gt;&lt;/b&gt;
&lt;b style="font-family: Verdana, sans-serif;"&gt;Alter Function&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; - performs either or both of the following:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;- Controls whether an existing function can run in protected mode as a separate process or in non-protected mode as part of the database.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; - &amp;nbsp;Re-compiles&amp;nbsp;or relinks the function and redistributes it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;ALTER FUNCTION privilege - enables user to ALTER a function.This privilege is not granted automatically and must be explicitly granted.Alter Function privilege should be held only by the DBA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Syntax: ALTER FUNCTION Parse_Text EXECUTE NOT PROTECTED;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Change the function from protected to non-protected mode.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;ALTER FUNCTION Parse_Text COMPILE;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Recompile the function without changing the protection mode.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Execute Function privilege: &lt;/b&gt;Enables user to evoke a function in an SQL statement. It enables a user to execute either specific functions, or all functions in a specified database. There is no EXECUTE FUNCTION command.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;This privilege is not granted automatically to the creator of a database or user and must be explicitly granted. A user can execute any function they create, in protected mode.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;GRANT EXECUTE FUNCTION On SYSLIB TO Usera;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Allows “Usera” to execute all function in database SYSLIB.&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;GRANT EXECUTE FUNCTION ON SPECIFIC FUNCTION Develop.Parse_Text TO Userc;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Allows “Userc” to execute the one function called ‘Parse_Text’ located in database “Develop”&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Rename Function:&amp;nbsp;&lt;/b&gt;This function permits the renaming either of a function name or a specific function name.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Syntax: RENAME SPECIFIC FUNCTION Match_Text TO Scan_Text;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;RENAME FUNCTION Imagine_numbers(FLOAT, FLOAT) TO Imaginary_numbers;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;COMMENT ON&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;COMMENT [ON] [ FUNCTION ] &amp;lt;object_name&amp;gt; [AS] ‘&amp;lt;comment&amp;gt;’&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;To create comments on a function use FUNCTION keyword and specify function name.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;COMMENT ON FUNCTION Parse_Text ‘Scans for text using a pattern’;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;To comment on function parameter then use the COLUMN keyword option.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;COMMENT ON COLUMN Parse_Text.source_text AS ‘The text to be scanned’;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Limitations of User Defined Functions:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;- UDFs cannot execute any SQL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;- UDFs cannot execute any Standard I/O functions.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;- UDFs cannot be used to calculate the value of a Primary Index column for an INSERT statement.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;- UDFs cannot be used to calculate the value of a Primary Index column in a Where clause to Select a Row.&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;







&lt;/h2&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/05/user-defined-functions.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-4497110033435418245</guid><pubDate>Tue, 15 May 2012 11:35:00 +0000</pubDate><atom:updated>2012-12-12T07:55:01.908-08:00</atom:updated><title>LOB in Teradata</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Verdana, sans-serif; text-align: justify;"&gt;It is possible to create functions which operate on large object data types. The following library functions exists to provide the ability use LOB's as function input or output:&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_GetLobLength - acquire Lob length&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_LobAppend - add to Lob in memory&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_LobClose - close a context to a Lob&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_LobOpen - open a context to a Lob&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_LobRead - read some or all&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_LobRef2Loc - convert a Lob Reference to a Locator&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FNC_LobLoc2Ref - convert a Locator to a Lob Reference&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Example :&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The CREATE FUNCTION syntax permits BLOB's or CLOB's to be the data type of an argument or a return value&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;CREATE FUNCTION JPEG_CROP&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Image BLOB AS LOCATOR&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Width INTEGER,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Height INTEGER,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;X_Offset INTEGER,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Y_Offset INTEGER&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;RETURNS BLOB AS LOCATOR&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;LANGUAGE C&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;NO SQL&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;EXTERNAL;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/05/lobs-in-teradata.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-8362068678302335910</guid><pubDate>Mon, 14 May 2012 17:43:00 +0000</pubDate><atom:updated>2012-05-15T04:36:27.348-07:00</atom:updated><title>Recursive Triggers</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;A &lt;/span&gt;&lt;b style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;recursive trigger&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; contains a triggered action which causes the triggering action to reoccur. For example, assume a row trigger is defined with a triggering action that inserts a row into a table. If the triggered action also inserts into the same table, it will cause the trigger to fire again. This will continue until one of two events occur:&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;The WHEN clause logic in the trigger definition causes the cycle to end.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Sixteen levels of recursion occur.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The system automatically stops the recursion after sixteen levels to prevent an infinite loop.&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Example 1:&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;CREATE TABLE table1_recur&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;(col_a INT);&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;CREATE TRIGGER recur_1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;AFTER INSERT ON table1_recur&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;REFERENCING NEW AS t1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;FOR EACH ROW&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;WHEN (t1.col_a &amp;lt; 10)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;INSERT INTO table1_recur (t1.col_a + 1);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;INSERT INTO table1_recur( 7 );&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT * FROM table1_recur;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; col_a&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;-----------&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;DELETE FROM table1_recur;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Now, we will remove the WHEN clause which controls the stopping of the recursion. In theory, this could produce an infinite loop, however the Teradata trigger implementation forces the recursion to rollback with a failure after 16 iterations.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Example 2:&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;REPLACE TRIGGER recur_1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;AFTER INSERT ON table1_recur&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;REFERENCING NEW AS t1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;FOR EACH ROW&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;INSERT INTO table1_recur (t1.col_a + 1);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;INSERT INTO table1_recur( 7 );&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;*** Failure 5848 Statement# 1, Info =0&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;SELECT * FROM table1_recur;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;*** Query completed. No rows found.&amp;nbsp;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Note that no rows are found in the table because the failure of the transaction has caused all activity to be rolled back.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://teradata-sql.blogspot.com/2012/05/recursive-triggers.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6187727342258971212.post-8194345047272337621</guid><pubDate>Sat, 12 May 2012 18:58:00 +0000</pubDate><atom:updated>2012-11-27T09:05:01.768-08:00</atom:updated><title>Limitations of Partition Primary Index</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1. Partition Primary Index(PPI) occupies extra two bytes for storing partition number.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2. Partition Primary index cannot be created on volatile and Global Temporary tables and compressed join index.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;3.&lt;span style="line-height: 14px;"&gt;&amp;nbsp;PPI does not allow NUPI, allows only UPI if PPI is part of primary index. Because in case of NUPI, it would require checking for a duplicate key value in every &amp;nbsp;partition, which would be very expensive. But in case of UPI,This will result in checking for unique constraint in the same partition.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://teradata-sql.blogspot.com/2012/05/limitations-of-ppi-partition-primary.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item></channel></rss>