Daniel,

find the lab_number where ALL the tests have been performed and
not the lab_numbers which have partial results.

SELECT t1.lab,t1.res,t1.dt
FROM tbl t1
WHERE NOT EXISTS(
 SELECT lab FROM tbl t2 WHERE t1.lab=t2.lab AND t2.res IS NULL
);

The decorrelated version uses an exclusion join, runs faster but looks a bit strange:

SELECT t1.lab_number,t1.result,t1.release_time
FROM tbl t1
LEFT JOIN tbl t2 ON t1.lab_number=t2.lab_number AND t2.result IS NULL
WHERE t2.lab_number IS NULL

There's a bit of discussion of this query pattern at http://www.artfulsoftware.com/queries.php nder 'Joins', 'The [Not] Exists Query Pattern'.

PB

-----

Daniel Smith wrote:
I have a table with numerous columns but needing to perform a query
based on three columns:

Lab_number, result, release_time.

What I want to do is search for lab_number where there is a result but
not released.  The problem that is making this difficult for me, is that
there are multiple entries for the same lab_number, due to a lab_number
having 1 or more tests being performed on it.  The search I really want
to do is find the lab_number where ALL the tests have been performed and
not the lab_numbers which have partial results.

*-------------------------------------------------------*
|lab_number     |       result  |release_time           |
|       1       |       10      |0000-00-00 00:00:00    |
|       1       |       20      |0000-00-00 00:00:00    |
|       2       |       5       |0000-00-00 00:00:00    |
|       2       |               |0000-00-00 00:00:00    |
|       3       |               |0000-00-00 00:00:00    |
|       3       |               |0000-00-00 00:00:00    |
|       3       |               |0000-00-00 00:00:00    |
*-------------------------------------------------------*

So the query I want will only return 1, as 2 is not yet complete.  The
attempts I have made so far will return 2 as well.  The thing that is
really annoying me is that I know I will kick myself when I see a
solution!

Thanks

Danny





--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.410 / Virus Database: 268.16.13/632 - Release Date: 1/16/2007


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to