For a bit of fun I threw this together. It doesn't use any casting or converting unlike previous answers...
DECLARE @tbl table (
EntityId int
, Submitted bit
, Reviewed bit
, Query bit
);
INSERT INTO @tbl
VALUES (36, 1, 0, 0)
, (52, 1, 0, 0)
, (52, 1, 1, 0)
, (56, 1, 0, 0)
, (56, 1, 1, 0)
, (57, 1, 0, 0)
, (57, 1, 1, 0)
;
SELECT DISTINCT
base.EntityId
, Coalesce(submitted.Submitted, 0) As Submitted
, Coalesce(reviewed.Reviewed , 0) As Reviewed
, Coalesce(query.Query , 1) As Query
FROM @tbl As base
LEFT
JOIN @tbl As submitted
ON submitted.EntityId = base.EntityId
AND submitted.Submitted = 1
LEFT
JOIN @tbl As reviewed
ON reviewed.EntityId = base.EntityId
AND reviewed.Reviewed = 1
LEFT
JOIN @tbl As query
ON query.EntityId = base.EntityId
AND query.Query = 0
;
Results:
EntityId Submitted Reviewed Query
----------- ----------- ----------- -----------
36 1 0 0
52 1 1 0
56 1 1 0
57 1 1 0