fhg
Volume 8, Number 32 -- September 24, 2008

Common Table Expressions Ease System Conversion

Published: September 24, 2008

Dear Occupant:

In the factory where I work, we are replacing one engineering module of the large ERP package we run with a more modern, more robust engineering module. What was one physical file is now two or three physical files. Modifying programs and queries to use the new files is just about more fun than I ever envisioned when I was learning to write RPG at the vo-tech many years ago. Fortunately, I have some great tools to help with the conversion. One of them is the common table expression. I'll show you what I mean.

Assume a customer master file, CUSTOMERS, is being replaced with two files--TCUST (the customer master) and TCUSTSHIP (customer ship-to master). Assume also the following SQL command in use somewhere in the system (e.g., embedded in an RPG program):

select cus.cusno, cus.cusnam, 
       cus.billcity, cus.billstate, 
       cus.shipcity, cus.shipstate,
       cmt.cmttext
  from customers as cus
  left join comments as cmt
    on cus.cusno = cmt.cusno

Notice that this query uses two files--the customer master file and a comments file.

What must I do to the query in order to replace CUSTOMERS with TCUST and TCUSTSHIP? I could rewrite the query to use the new files. However, I found out quickly that approach can get complicated, especially in my project, where one file may be replaced by three or four files.

I like to make things as easy as possible, and I was able to easily change SQL queries by developing common table expressions that create result sets that look like the old files. Here's the example from above, with a common table expression.

with customers as 
 (select c.custacct as cusno, 
         c.custname as cusnam,
         c.btcity   as billcity,
         c.btstate  as billstate,
         s.shpcity  as shipcity,
         s.shpstate as shipstate
    from tcust as c
    join tcustship as s
      on s.custcomp = 1
     and c.custcomp = s.custcomp
     and c.custacct = s.custacct
     and s.primary = 1)
select cus.cusno, cus.cusnam, 
       cus.billcity, cus.billstate, 
       cus.shipcity, cus.shipstate,
       cmt.cmttext
  from customers as cus
  left join comments as cmt
    on cus.cusno = cmt.cusno

SQL no longer retrieves database file CUSTOMERS, but uses the common table expression called CUSTOMERS in its place. The common table expression selects the data from TCUST and TCUSTSHIP and renames the selected columns to the names they have in the old CUSTOMERS file. Now that the common table expression has been developed, we can copy it to other SQL queries as needed, although we may have to change the list of columns in the SELECT clause.

Thanks to common table expressions, I have every reason to believe that my project will be completed successfully and on time.

--Ted




                     Post this story to del.icio.us
               Post this story to Digg
    Post this story to Slashdot


Sponsored By
HELP/SYSTEMS

SEQUEL™ -- IBM® System i™ Business Intelligence Made Easy

                  · Easy to use by IT and end users
                  · Automated data access and display
                  · Complete BI package: reports, tables, key performance indicators, and dashboards
                  · System i-centric for real-time data analysis
                  · Multiple interface options: graphical, green-screen, browser
                  · Expert support and training

SEQUEL meets your System i data access and analysis needs.

http://www.helpsystems.com/400g


Senior Technical Editor: Ted Holt
Technical Editor: Joe Hertvik
Contributing Technical Editors: Edwin Earley, Brian Kelly, Michael Sansoterra
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

Aldon:  Modernize Don't Replace IBM i Applications. Download the white paper.
LANSA:  "RAMP from LANSA offered the most flexibility and easiest deployment."
Vision Solutions:  A $20 gas card for completing a short i5/OS DR survey


 

IT Jungle Store Top Book Picks

Easy Steps to Internet Programming for AS/400, iSeries, and System i: List Price, $49.95
Getting Started with PHP for i5/OS: List Price, $59.95
The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
The System i Pocket RPG & RPG IV Guide: List Price, $69.95
The iSeries Pocket Database Guide: List Price, $59.00
The iSeries Pocket Developers' Guide: List Price, $59.00
The iSeries Pocket SQL Guide: List Price, $59.00
The iSeries Pocket Query Guide: List Price, $49.00
The iSeries Pocket WebFacing Primer: List Price, $39.00
Migrating to WebSphere Express for iSeries: List Price, $49.00
iSeries Express Web Implementer's Guide: List Price, $59.00
Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
Getting Started with WebSphere Express for iSeries: List Price, $49.00
WebFacing Application Design and Development Guide: List Price, $55.00
Can the AS/400 Survive IBM?: List Price, $49.00
The All-Everything Machine: List Price, $29.95
Chip Wars: List Price, $29.95


 
The Four Hundred
The Uberating System

IBM Cuts Deals on CPU and i5/OS for 550, 570, and 595 Boxes

Need to Cut Costs? Midrange Shops Should Do ERP Well

Mad Dog 21/21: You Can Teleworker, But Who Will Listen?

Oracle Soars in Fiscal Q1, But Applications Sales Soften

The Linux Beacon
Why Blade Servers Still Don't Cut It, and How They Might

Intel Keeps Both Arms Swinging with Xeons, Jabs with Itanium

Microsoft Ponies Up Another $100 Million for Novell Linux

Mad Dog 21/21: Newtonian Economics

Two More Xeon-Based Galaxy Servers from Sun

Four Hundred Stuff
.NET Abides by IBM i Logic, Thanks to New LANSA Product

iJungle Delivers a Web-Based i OS Application Framework

Zend Builds Closer DB2/400 Ties into PHP Platform

FIPS is for Private Enterprise, Too

IBM Posts List Prices for Vision Cluster1 On Web Site

Big Iron
For Some Customers, the Mainframe Is Green

Top Mainframe Stories From Around the Web

Chats, Webinars, Seminars, Shows, and Other Happenings

System i PTF Guide
September 20, 2008: Volume 10, Number 38

September 14, 2008: Volume 10, Number 37

September 7, 2008: Volume 10, Number 36

August 30, 2008: Volume 10, Number 35

August 23, 2008: Volume 10, Number 34

August 16, 2008: Volume 10, Number 33

The Windows Observer
Citrix Addresses Performance with XenApp 5

Server Buyers Shop Like It's 1999 in the Second Quarter

Intel Keeps Both Arms Swinging with Xeons, Jabs with Itanium

Mad Dog 21/21: Newtonian Economics

Microsoft Does Something About Those SQL Injection Attacks

The Unix Guardian
What the Heck Is the Midrange, Anyway?

Overseas and Notebook Sales Offset Printer Declines for HP in Q3

Two More Xeon-Based Galaxy Servers from Sun

Mad Dog 21/21: Newtonian Economics

Intel's Nehalems to Star at IDF, AMD Pitches Shanghai

Four Hundred Monitor
Four Hundred Monitor's
Full iSeries Events Calendar

THIS ISSUE SPONSORED BY:

WorksRight Software
Help/Systems
Twin Data


Printer Friendly Version


TABLE OF CONTENTS
Variable-Length Database Fields Better Use Disk Space

Common Table Expressions Ease System Conversion

Admin Alert: When System Job Tables Attack, Part I

Four Hundred Guru

BACK ISSUES

From the IT Jungle Forums
Data Queues vs. MQ Series: Performance

Removing blanks from a CL Variable

XML

SQL "Hidden" Field

Java Messages

MQ Help Desired





 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement