I have a table that contains references to clients impacted in a problem. The parent table contains the problem info, specifically the ProblemID (PbMID). Since one problem can affect multiple clients, we store the client impacted data in a child table. The child table contains an ID field for housekeeping, a PbMID field which foreign keys back to the parent table, and a Company field containing the text name of the client. I have a requirement to pull all the problems were a SINGLE client was impacted. If I use DISTINCT, I get all single client rows, but I also get the FIRST row of a multi-client problem, which is not what I'm being asked for.
Here's the client impacted table example
ID | PbMID | Company |
1 | 1 | Company 1 | Valid
2 | 4 | Company 2 | Valid
3 | 6 | Company 3 | Valid
4 | 22 | Company 1 | Invalid
5 | 22 | Company 4 | Invalid
6 | 23 | Company 5 | Valid
7 | 24 | Company 6 | Valid
8 | 25 | Company 1 | Invalid
9 | 25 | Company 8 | Invalid
10 | 25 | Company 10 | Invalid
11 | 26 | Company 2 | Valid
12 | 27 | Company 4 | Valid
The rows marked INVALID would not be included, since they reflect multi-client problems.
So, ideally, the return would be:
ID | PbMID | Company |
1 | 1 | Company 1 | Valid
2 | 4 | Company 2 | Valid
3 | 6 | Company 3 | Valid
6 | 23 | Company 5 | Valid
7 | 24 | Company 6 | Valid
11 | 26 | Company 2 | Valid
12 | 27 | Company 4 | Valid
Any help would be greatly appreciated. SQL isn't my forte, so I've been trying to wrap my head around this with no luck.