Steve-
I saw that post and started playing with the LATERAL keyword to see how it could be useful, but I came to the conclusion that Common Table Experession (CTE) were much more widely known and capable solution (though less compact).
How I would code the query:
With FIRSTDATE as (select  min(c.w2sdte), c.w2wacd, c.w2sid
            from    w2mast c
            where   c.w2sdte <> 0
	group by c.w2wacd, c.w2sid)
select a.w1BOL, b.w2sdte
from    w1mast a JOIN FIRSTDATE b ON
 a.w1wacd = b.w2wacd and a.w1sid = b.w2sid
where    a.w1wacd = 'LAE' and a.w1BOL <> ' '
I would be curious to know if there is any difference in performance between these two solutions
-Tom Stieger
IT Manager
California Fine Wire
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Steve Richter
Sent: Friday, December 14, 2012 11:03 AM
To: Midrange Systems Technical Discussion
Subject: my first use of lateral
someone posted about sql lateral recently, which I had never heard of.
 Here is my first use of it.
There are 2 files. A header and a detail.  Header contains the BOL number.
 The detail contains the ship date of all the lines of that BOL. ( go figure )
Here is the sql that shows the BOL and its ship date:
select a.w1BOL, b.w2sdte
from    w1mast a
, lateral ( select  c.w2sdte
            from    w2mast c
            where   a.w1wacd = c.w2wacd and a.w1sid = c.w2sid
                    and c.w2sdte <> 0
            fetch first row only ) b
where    a.w1wacd = 'LAE' and a.w1BOL <> ' '
I figure without lateral I have to do a join with group by and MIN(w2sdte) to eliminate the multiple detail rows. But with lateral I can use "fetch first row only" which is clearer to read since it does exactly what I want to be done.
-Steve
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at 
http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.