Comme je l'ai bien compris votre demande, vous devez résumer sur les totaux seulement dans l'agent est le cas x, y, z
donc, soit requête imbriquée:
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)
Ou
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
Ou si vous avez besoin d'avoir les deux, payé à l'agent et remplace uniquement par des agents
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
Ou vous pouvez
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
Non lié, mais: 'distinct' est ** NON ** une fonction. 'distinct (a), b, c' est le même que' distinct a, b, c' ou 'distinct a, b, (c)' –
Merci, je viens de copier et coller et je n'ai pas sorti la parenthèse , étant paresseux –