For SQL Server, here's data setup and query 1.:
USE tempdb;
IF OBJECT_ID('dbo.tbl_Agents') IS NOT NULL DROP TABLE dbo.tbl_Agents;
CREATE TABLE dbo.tbl_Agents ( AgentID int NOT NULL, Name varchar(100) NOT NULL, AgentTypeID smallint NOT NULL );
TRUNCATE TABLE dbo.tbl_Agents;
INSERT INTO dbo.tbl_Agents VALUES
(578349, 'John Doe', 3),
(569347, 'Jane Doe', 1),
(548937, 'Bob Smith', 4),
(578934, 'Joe Jones', 2),
(562932, 'Billy Johnson', 5);
IF OBJECT_ID('dbo.tbl_AgentTypes') IS NOT NULL DROP TABLE dbo.tbl_AgentTypes;
CREATE TABLE dbo.tbl_AgentTypes ( AgentTypeID smallint NOT NULL, Name varchar(50) NOT NULL );
TRUNCATE TABLE dbo.tbl_AgentTypes;
INSERT INTO dbo.tbl_AgentTypes VALUES
(3, 'Sales'),
(1, 'PreSales'),
(4, 'Consultant'),
(2, 'Operations')
IF OBJECT_ID('dbo.tbl_TaskTypes') IS NOT NULL DROP TABLE dbo.tbl_TaskTypes;
CREATE TABLE dbo.tbl_TaskTypes ( TaskTypeID smallint NOT NULL, Name varchar(100) NOT NULL )
TRUNCATE TABLE dbo.tbl_TaskTypes;
INSERT INTO dbo.tbl_TaskTypes VALUES
(1, 'Selling'),
(2, 'Presentation'),
(3, 'Production'),
(4, 'Consult'),
(5, 'Operations')
IF OBJECT_ID('dbo.tbl_Tasks') IS NOT NULL DROP TABLE dbo.tbl_Tasks;
CREATE TABLE dbo.tbl_Tasks ( TaskID int NOT NULL, TaskTypeID smallint NOT NULL, AgentID int NOT NULL );
TRUNCATE TABLE dbo.tbl_Tasks;
INSERT INTO dbo.tbl_Tasks VALUES
(100001, 5, 578934),
(100002, 3, 578934),
(100003, 2, 569347),
(100004, 2, 578349),
(100005, 4, 548937),
(100006, 1, 578349),
(100007, 5, 578934),
(100008, 3, 578934),
(100009, 2, 569347),
(100010, 2, 578349),
(100011, 4, 548937),
(100012, 1, 578349)
--1.
SELECT AT.*, 'AgentTypeID currently has more than one Task type.'
FROM (
SELECT DISTINCT A.AgentTypeID
FROM dbo.tbl_Tasks T
INNER JOIN dbo.tbl_Agents A ON A.AgentID = T.AgentID
GROUP BY A.AgentTypeID, T.TaskTypeID
HAVING COUNT(*) > 1
) AS A
INNER JOIN dbo.tbl_AgentTypes AT ON AT.AgentTypeID = A.AgentTypeID
ORDER BY 1, 2