SELECT
T . ID,
T . NAME,
T .feed_id,
T .status,
T .budget,
(
SELECT
COUNT (*)
FROM
segment
WHERE
segment.campaign_id = T . ID
) AS total_segments,
(
SELECT
SUM (revenue)
FROM
TRANSACTION
WHERE
TRANSACTION .campaign_id = T . ID
AND TRANSACTION .status = 3
AND deleted = 0
) AS projected_revenue
FROM
campaign T
WHERE
(T .deleted = 0)
AND (site_id = 3)
GROUP BY
T ."id"
HAVING
(
SELECT
SUM (revenue)
FROM
TRANSACTION
WHERE
TRANSACTION .campaign_id = T . ID
AND TRANSACTION .status = 3
AND deleted = 0
) > 242.45
ORDER BY
T . ID DESC
The query works fine when having
subquery is greater than (>
) or less than (<
) but when equals it does not show any result. But it works with:
HAVING (
SELECT SUM (revenue)
FROM TRANSACTION
WHERE TRANSACTION.campaign_id = T.ID
AND TRANSACTION.status = 3
AND deleted = 0
)::NUMERIC = 242.45