fhg
Volume 12, Number 25 -- October 17, 2012

Non-Equal (Theta) Joins

Published: October 17, 2012

by Ted Holt

In George Orwell's novel Animal Farm, all animals were declared to be equal. However, that was not the case. By the end of the book, some were "more equal than others." You might think that all joins are equal, but you would be wrong. Unequal joins have their applications, too.

The equijoin is the norm in business. A customer number in a table (file) of invoices matches (equals) a customer number in a customer master table. But it is also possible to join on non-matching conditions such as not equal, greater than, less than, greater than or equal to, less than or equal to. Such a join is called a theta join.

With one exception, theta joins are not terribly useful. I rarely use them. The one exception is joining on ranges of values.

For instance, assume you work for a company that uses a 445 accounting system. Each quarter of a year consists of two four-week periods and one five-week period. You might have a table that looks like this:


Year

Year

Period

Beginning Date

Ending Date

Quarter

2011

12

2011-11-27

2011-01-31

4

2012

1

2012-01-01

2012-01-28

1

2012

2

2012-01-29

2012-02-25

1

2012

3

2012-02-26

2012-03-31

1

2012

4

2012-04-01

2012-04-28

2


You may also have a table of shipments.


Shipment

Shipment

Date

Item

Price

Quantity

1015

2012-01-20

AB101

2.00

2

1016

2012-01-27

BZ873

4.50

1

1017

2012-01-30

DL297

1.00

3

1018

2012-02-03

AB202

1.25

2


To report sales by period or quarter, or for a period or quarter, requires you to join the files, but you can't do that with an equijoin. Instead, use BETWEEN.

select per.year, per.period,
       sum(s.quantity) as Qty,
       sum(s.quantity * s.price) as Amount
  from shipments as s
  join accountingperiods as per
    on s.date between per.begindate and per.enddate
 group by per.year, per.period
 order by per.year, per.period

The output looks like this:


Year

Year

Period

Qty

Amount

2012

1

3

8.50

2012

2

5

5.50


I've no doubt that there are other uses for theta joins that I've never thought of. I still have so much to learn.


RELATED STORIES

Updating Through a Join with SQL, Take Two

Don't Let Users Wreck Their Joins

Updating through a Join with SQL



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


Sponsored By
PRODATA COMPUTER SERVICES

Demo DBU with one click!

Have you always wanted to try IBM i's #1 database utility without any hassle?

Well now you can! DBU is available on our IBM i for you
to access directly from our web site.
No hassle, no download...just a click!

Start HERE.

One tool. One interface. Multiple Platforms!

www.prodatacomputer.com
800.228.6318


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

Vision Solutions:  Free White Paper: An Introduction to HA for Power Systems Running IBM i
HiT Software:  Download "Five Reasons for Change Data Capture in the Cloud"
ITJ Bookstore:  Bookstore BLOWOUT!! Up to 50% off all titles! Everything must go! Shop NOW


 

IT Jungle Store Top Book Picks

Bookstore Blowout! Up to 50% off all titles!

The iSeries Express Web Implementer's Guide: Save 50%, Sale Price $29.50
The iSeries Pocket Database Guide: Save 50%, Sale Price $29.50
Easy Steps to Internet Programming for the System i: Save 50%, Sale Price $24.97
The iSeries Pocket WebFacing Primer: Save 50%, Sale Price $19.50
Migrating to WebSphere Express for iSeries: Save 50%, Sale Price $24.50
Getting Started with WebSphere Express for iSeries: Save 50%, Sale Price $24.50
The All-Everything Operating System: Save 50%, Sale Price $17.50
The Best Joomla! Tutorial Ever!: Save 50%, Sale Price $9.98


 
The Four Hundred
IBM Carves Out Upgrade Paths To New Power7+ Systems

IBM Adds A Bunch Of I/O Devices To Power Systems

IBM i Workloads Now Supported On IBM Private Cloud Software

As I See It: Chasing The Impulse

Big Blue Pits PureData Appliance Against Ellison's Exadata

Four Hundred Stuff
Database Modernization: A Matter of Survival for IBM i ISVs

EMC and IBM Extend Pact, Unveil New IBM i Storage Technology

Infor SEC Filing Hints at IPO

Agilysys Kills Guest360 Hotel System, Launches New Project

Arpeggio Launches Free Encryption and SFTP Tools for IBM i

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

System i PTF Guide
October 13, 2012: Volume 14, Number 41

October 6, 2012: Volume 14, Number 40

September 29, 2012: Volume 14, Number 39

September 22, 2012: Volume 14, Number 38

September 15, 2012: Volume 14, Number 37

September 8, 2012: Volume 14, Number 36

TPM at The Register
Mellanox etches software-defined networking onto SwitchX-2 chips

AMD to decimate workforce several times over?

Compuware puffs up Outage Analyzer to fight performance anxiety

Hoosiers to get the world's fastest academic super

ARM cranks up cache and memory designs for servers

Unisys pumps up ClearPath mainframes with Xeon E5s

IBM takes on Oracle with PureData appliances

ARM upstart Calxeda pours $55m into server chip war chestvc

VMware crams more cloudy calories in vCloud Suite's cakehole

Red Hatters seal chumship with Zend on OpenShift PHP cloud

Citrix XenServer 6.1 fires live VMs from cannon across servers

HP doubles up SAP hard-hearted HANA appliances

THIS ISSUE SPONSORED BY:

WorksRight Software
ProData Computer Services
American Top Tools


Printer Friendly Version


TABLE OF CONTENTS
What's That Name?

Non-Equal (Theta) Joins

Admin Alert: One Year Out--Preparing For Your Next IBM i Upgrade, Part 2

Four Hundred Guru

BACK ISSUES




 
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-2012 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement