Hi!
wie kann ich Doppelzählungen, wenn ich z.B. in der where Klausel ein substr(xyz, 1, 5) verwende.
Der SQL befehl sieht ungefähr wie folgt aus:
SELECT
a.xyz
TO_CHAR(SUM(COALESCE(a.y, 0)), '99999999') AS x,
TO_CHAR(SUM(COALESCE(a.x, 0)), '99999999') AS y,
...
FROM ... a
INNER JOIN ... b ON a.plz = b.plz ...
INNER JOIN ... c ON ... substr(a.gkz, 1, 5) = b.gkz ...
...
a.a ist eine 8 stellige Zahl mit führenden Nullen.
wenn z.B. folgende Zahlen existieren 00123456, 00123457, 00123458
wird der Wert von der Tabelle a 3 mal verwendet.
Aktuell löse ich es wie folgt:
SELECT
a.xyz
COALESCE(a.y, 0), '99999999') AS x,
COALESCE(a.x, 0), '99999999') AS y,
FROM
(
SELECT DISTINCT
a.plz
a.xyz
TO_CHAR(SUM(COALESCE(a.y, 0)), '99999999') AS x,
TO_CHAR(SUM(COALESCE(a.x, 0)), '99999999') AS y,
...
FROM ... a
INNER JOIN ... b ON a.plz = b.plz ...
INNER JOIN ... c ON ... substr(a.gkz, 1, 5) = b.gkz ...
...
)
...
gibt es eine elegantere Lösung?
Kristin