May 21

0 comments

System21 – Phone numbers for any customers on sales orders

By NickLitten

May 21, 2016

JBA, SQL, SYSTEM21

During a meeting this morning, I was asked to provide a list of all Customer phone numbers for any System21 Customers that have ever been used on a Sales Order.

Perhaps this sounds like a complicated request but… have no fear SQL is here!!! In reality, its a very simple thing to find and takes just a few seconds using a SQL INNER JOIN.

How can we use SQL to find this data?

In this example, I’m working on a data cleanse to make sure that the phone numbers are properly formatted before sending them to FEDEX as part of the shipment information. We know that some of our data is badly formatted so lets quickly see how many are good, bad or ugly. Using SQL we can see all CUSTOMER entries from the Customer Master file (SLP05) which have been referenced on the Sales Order Header file (OEP40).

The SQL command goes like this:

SELECT cusn05, dseq05, cnam05, phon05 
 FROM slp05 
 WHERE EXISTS 
 (SELECT * 
 FROM oep40 
 WHERE slp05.cusn05 = oep40.cusn40)

This is saying show me the Customer Number (cusn05), Delivery Sequence code (DSEQ05), Customer Name (CNAM05) and Phone Number (PHON05) from the Customer Master file (SLP05) for all customers that exist in the Sales Order Master file (OEP40). The results will looks something like this:

....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
 Customer Delivery Customer Telephone 
 address Name number 
 cod 
 12345 000 BOB SMITH (123) 456 1000 
 555444 000 CLANGER METALS 455-1234 X400

etc etc

Simple as Pie… not the 3.14159 one 😉

NOTE: If you want to know more about Joins I recommend this excellent article http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Join the IBM i Community for FREE Presentations, Lessons, Hints and Tips

>