Wie ich Ihre Anfrage verstanden Sie auf Summen summieren müssen nur im Falle ist Mittel x, y, z
Also entweder verschachtelte Abfrage:
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)
Oder
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
oder wenn Sie beide Agenten Paid haben, und überschreibt nur von Agenten
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
Oder Sie können
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
Nicht verwandt, aber: 'distinct' ist ** NOT ** eine Funktion. 'distinct (a), b, c' ist das gleiche wie' distinct a, b, c' oder 'distinct a, b, (c)' –
Danke, ich habe nur kopiert und eingefügt und habe die Klammern nicht entfernt Faulenzen –