据我了解您的要求,只有在代理是 x、y、z 的情况下,您才需要总结总数
所以无论是嵌套查询:
SELECT "Agent", sum("Overrides")
FROM
(
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides"
FROM "public"."rdf_dean"
WHERE "public"."rdf_dean"."created_date" = date(now())
GROUP BY agent_name
) as data
WHERE
data."Agent" in (x, y, z)
或者
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides"
FROM "public"."rdf_dean"
WHERE "public"."rdf_dean"."created_date" = date(now())
AND "public".rdf_dean.agent_name in (x, y, z)
GROUP BY agent_name
或者,如果您需要两者,则支付给代理并仅由代理覆盖
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides",
(SELECT SUM("public"."rdf_dean"."paidcomm" *.1)
FROM "public"."rdf_dean" internal
WHERE
internal.agent_name = out.agent_name
AND
internal.agent_name in (x, y, z) ) AS "OverridesXYZ"
FROM "public"."rdf_dean" out
WHERE "public"."rdf_dean"."created_date" = date(now())
GROUP BY agent_name
或者你可以
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides",
SUM(internal.paidcomm * .1) AS "OverridesXYZ"
FROM "public"."rdf_dean" out
LEFT JOIN public.rdf_dean internal ON internal.agent_name = out.agent_name AND internal.agent_name in (x, y, z)
WHERE "public"."rdf_dean"."created_date" = date(now())
GROUP BY agent_name