Hi Jay,

Thanks for your reply, I tried your query but it jus hang :(

Here is some sample data:

mysql> SELECT * FROM Bookings WHERE Practice_ID = 11049;
+------------+--------------+---------+------------+--------+-------------+--------------------+-----------------------+---------------------+---------------------+-------------------------+-----------------+----------------+-------------------+---------+--------------+------------------+---------------------------------------+---------------------------------------------+-----------+-----------------+---------------+
| Booking_ID | Booking_Type | User_ID | Project_ID | Rep_ID | Practice_ID | Booking_Creator_ID | Booking_Creation_Date | Booking_Start_Date | Booking_End_Date | Booking_Completion_Date | Booking_Mileage | Booking_Status | Unavailability_ID | Task_ID | Work_Type_ID | Additional_Notes | Pre_Event_Copy_Received_By_Scheduling | Post_Event_Original_Completed_Form_Received | Section_C | Date_Difference | AU_Booking_ID |
+------------+--------------+---------+------------+--------+-------------+--------------------+-----------------------+---------------------+---------------------+-------------------------+-----------------+----------------+-------------------+---------+--------------+------------------+---------------------------------------+---------------------------------------------+-----------+-----------------+---------------+
| 6148 | Booking | 1571 | 32 | 1629 | 11049 | 75 | 2005-03-11 13:29:40 | 2005-04-01 09:30:00 | 2005-04-01 17:30:00 | NULL | 0 | Incomplete | NULL | 26 | 76 | x | Yes | NULL | No | n/a | NULL |
| 6149 | Booking | 1571 | 32 | 1629 | 11049 | 75 | 2005-03-11 13:30:49 | 2005-05-06 09:30:00 | 2005-05-06 17:30:00 | NULL | NULL | Incomplete | NULL | 26 | 77 | x | 0 | NULL | 0 | n/a | NULL |
| 50 | Booking | 1571 | 3 | 1629 | 11049 | 75 | 2005-03-11 13:31:20 | 2005-05-09 09:30:00 | 2005-05-09 17:30:00 | NULL | NULL | Incomplete | NULL | 26 | 9 | x | 0 | NULL | 0 | n/a | NULL |
| 55 | Booking | 1645 | 3 | 1629 | 11049 | 75 | 2005-04-01 11:38:24 | 2005-04-04 09:30:00 | 2005-04-04 17:30:00 | NULL | 0 | Incomplete | NULL | 26 | 9 | x | No | NULL | No | n/a | NULL |
+------------+--------------+---------+------------+--------+-------------+--------------------+-----------------------+---------------------+---------------------+-------------------------+-----------------+----------------+-------------------+---------+--------------+------------------+---------------------------------------+---------------------------------------------+-----------+-----------------+---------------+
4 rows in set (0.02 sec)


mysql> SELECT * FROM Work_Types WHERE Project_ID = 32;
+--------------+------------+----------+--------------------+
| Work_Type_ID | Project_ID | Day_Type | Work_Type          |
+--------------+------------+----------+--------------------+
|           76 |         32 |        1 | Day 1              |
|           77 |         32 |        2 | Day 2              |
+--------------+------------+----------+--------------------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM Work_Types WHERE Project_ID = 3;
+--------------+------------+----------+--------------------+
| Work_Type_ID | Project_ID | Day_Type | Work_Type          |
+--------------+------------+----------+--------------------+
|            8 |          3 |        1 | Day 1              |
|            9 |          3 |        2 | Day 2              |
+--------------+------------+----------+--------------------+
2 rows in set (0.00 sec)

mysql>

Here you can see that Practice 11049 has four bookings. The two for project 32 are ok, but the two for project 3 do not have a booking where the day type is 1.

I hope this makes sense! Thanks again for your help.


Shaun

From: "Jay Blanchard" <[EMAIL PROTECTED]>
To: "shaun thornburgh" <[EMAIL PROTECTED]>, <mysql@lists.mysql.com>
Subject: RE: How can I find this data?
Date: Wed, 4 May 2005 06:36:18 -0500


[snip]
I have four tables among others in my database: Bookings, Work_Types,
Practices & Projects. Bookings occur in a Practice for a Project and
have a
Work_Type. A Practice can have many Bookings but must have one and only
one
Booking where the Work_Type.Day_Type = 1. This rule was introduced after
the
system was initially set up and I have a feeling there may be Practices
that
have no Day 1's. So how can I perform a query that returns all practices

that have had bookings but no Day 1's for a particualar project? Please
see
table definitions below.
[/snip]
Thanks very much for your help.

mysql> desc Bookings;
| Booking_ID                                  | int(11)     |      | PRI
|
| Booking_Type                                | varchar(15) |      |
|
| User_ID                                     | int(11)     |      |
| 0
| Project_ID                                  | int(11)     | YES  |
|
| Rep_ID                                      | int(11)     | YES  |
|
| Practice_ID                                 | int(11)     | YES  |
|
| Booking_Creator_ID                          | int(11)     | YES  |
|
| Booking_Creation_Date                       | datetime    | YES  |
|
| Booking_Start_Date                          | datetime    |      |
|
| Booking_End_Date                            | datetime    |      |
|
| Booking_Completion_Date                     | date        | YES  |
|
| Booking_Mileage                             | int(5)      | YES  |
|
| Booking_Status                              | varchar(15) |      |
|
| Unavailability_ID                           | int(2)      | YES  |
|
| Task_ID                                     | int(11)     | YES  |
|
| Work_Type_ID                                | int(2)      | YES  |
|
| Additional_Notes                            | text        | YES  |
|
| Pre_Event_Copy_Received_By_Scheduling       | char(3)     | YES  |
|
| Post_Event_Original_Completed_Form_Received | char(3)     | YES  |
|
| Section_C                                   | char(3)     | YES  |
|
| Date_Difference                             | varchar(20) |      |
|
| AU_Booking_ID                               | int(11)     | YES  |
|

mysql> desc Projects;
| Project_ID                 | int(11)      |      | PRI | NULL    |
| Project_Name               | varchar(100) |      |     |         |

| Client_ID                  | int(11)      |      |     | 0       |

| Rep_Viewable               | char(3)      |      |     | Yes     |

| Administrator_ID           | int(11)      | YES  |     | NULL    |

| Administrator_Phone_Number | varchar(20)  |      |     |         |

| Project_Manager_ID_1       | int(11)      | YES  |     | NULL    |

| Project_Manager_ID_2       | int(11)      | YES  |     | NULL    |


mysql> desc Practices; | Practice_ID | int(11) | | PRI | NULL | auto_increment | PCT_ID | int(11) | | | 0 |

| Practice_Name      | varchar(40)  |      |     |         |

| Practice_Address   | varchar(255) |      |     |         |

| Practice_Postcode  | varchar(10)  |      |     |         |

| Practice_Telephone | varchar(15)  |      |     |         |

| Practice_Manager   | varchar(40)  |      |     |         |

| Practice_Lead_GP   | varchar(40)  |      |     |         |

| Practice_List_Size | int(11)      | YES  |     | NULL    |

| Practice_System    | varchar(100) |      |     |         |

| NHS_ID             | varchar(20)  | YES  |     | NULL    |

| MiQuest            | char(3)      | YES  |     | NULL    |


mysql> desc Work_Types; | Work_Type_ID | int(3) | | PRI | NULL | auto_increment | | Project_ID | int(11) | YES | | NULL | | | Day_Type | int(2) | YES | | NULL | | | Work_Type | varchar(40) | | | | |

Not including all the possible columns, just an untested skeleton....and
pure speculation without seeing a proposed result set....

SELECT p.Practice_ID, w.Day_Type
FROM Practices p LEFT OUTER JOIN Bookings b
ON(p.Practice_ID = b.Practice_ID) LEFT OUTER JOIN WorkTypes w
ON(b.Project_ID = w.Project_ID)
WHERE b.Practice_ID IS NOT NULL

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





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



Reply via email to