I do not understand your structure much, if you have how normalize would be much better ...
I've set up an example (sql server) that you can test and evaluate if it helps:
CREATE TABLE EMPRESA
(
ID_EMPRESA INT IDENTITY PRIMARY KEY,
EMPRESA VARCHAR(255)
)
CREATE TABLE EVENTO
(
ID_EVENTO INT IDENTITY PRIMARY KEY,
CATEGORIA VARCHAR(255),
TITULO VARCHAR(255),
PALESTRANTE VARCHAR(255)
)
CREATE TABLE E_INSCRITO
(
ID_INSCRITO INT IDENTITY PRIMARY KEY,
ID_EMPRESA INT,
ID_EVENTO INT,
COD_INSCRICAO VARCHAR(50),
PRESENCA BIT DEFAULT NULL
)
-- ### Empresa ### --
INSERT INTO EMPRESA (EMPRESA) VALUES ('Empresa 1')
INSERT INTO EMPRESA (EMPRESA) VALUES ('Empresa 2')
INSERT INTO EMPRESA (EMPRESA) VALUES ('Empresa 3')
INSERT INTO EMPRESA (EMPRESA) VALUES ('Empresa 4')
INSERT INTO EMPRESA (EMPRESA) VALUES ('Empresa 5')
--------------------
-- ### Evento ### --
INSERT INTO EVENTO (CATEGORIA, TITULO, PALESTRANTE) VALUES ('Evento 1', 'Palestra 1', 'Palestrante 1')
INSERT INTO EVENTO (CATEGORIA, TITULO, PALESTRANTE) VALUES ('Evento 2', 'Palestra 2', 'Palestrante 1')
INSERT INTO EVENTO (CATEGORIA, TITULO, PALESTRANTE) VALUES ('Evento 3', 'Palestra 3', 'Palestrante 1')
INSERT INTO EVENTO (CATEGORIA, TITULO, PALESTRANTE) VALUES ('Evento 4', 'Palestra 4', 'Palestrante 2')
INSERT INTO EVENTO (CATEGORIA, TITULO, PALESTRANTE) VALUES ('Evento 5', 'Palestra 5', 'Palestrante 2')
INSERT INTO EVENTO (CATEGORIA, TITULO, PALESTRANTE) VALUES ('Evento 6', 'Palestra 6', 'Palestrante 2')
--------------------
-- ### Inscritos ### --
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (1, 1, '100', 0)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (1, 1, '101', 0)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (1, 2, '102', NULL)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (1, 3, '103', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (2, 1, '200', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (2, 1, '201', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (2, 1, '202', 0)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (2, 3, '203', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (2, 4, '204', NULL)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (3, 1, '300', 0)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (3, 4, '301', NULL)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (3, 6, '302', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (3, 6, '303', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (3, 6, '304', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (4, 4, '400', NULL)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (4, 5, '401', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (4, 6, '402', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (5, 5, '500', 1)
INSERT INTO E_INSCRITO (ID_EMPRESA, ID_EVENTO, COD_INSCRICAO, PRESENCA) VALUES (5, 5, '501', 1)
-----------------------
SELECT TITULO, EMPRESA, CASE WHEN PRESENCA = 1 THEN 'Confirmado' WHEN PRESENCA = 0 THEN 'Não confirmado' ELSE 'Não informado' END PRESENCA, COUNT(ISNULL(PRESENCA, 0)) TOTAL_PRESENCA
FROM E_INSCRITO
INNER JOIN EMPRESA ON EMPRESA.ID_EMPRESA = E_INSCRITO.ID_EMPRESA
INNER JOIN EVENTO ON EVENTO.ID_EVENTO = E_INSCRITO.ID_EVENTO
GROUP BY TITULO, EMPRESA, PRESENCA
ORDER BY TITULO, EMPRESA, PRESENCA
link