Um die Anzahl der Felder, die 'T' enthalten ohne Subquery zu bekommen kannst du auch CASE Statements benutzen. (Ist aber ziemlich langsam!)
SQL-Code:
SELECT N.PRODUKTID,
SUM(CASE When N.BEDARF LIKE '%T%' Then 1 Else 0),
SUM(CASE When N.OLB LIKE '%T%' Then 1 Else 0),
SUM(CASE When N.ANDERE LIKE '%T%' Then 1 Else 0),
COUNT(N.ID)
FROM NUTZUNG N,
KUNDEN K
WHERE N.PRODUKTID IS NOT NULL AND K.KUNDEID = N.KUNDEID AND
(K.PBETREUER = -59 OR K.FBETREUER = -59 OR K.WBETREUER = -59)
GROUP BY N.PRODUKTID
ORDER BY N.PRODUKTID
DECODE wäre die andere Möglichkeit. z.B.:
SQL-Code:
SELECT N.PRODUKTID,
SUM(decode(InSTR(N.BEDARF, 'T', 1), 0, 0, 1)),
SUM(decode(InSTR(N.OLB, 'T', 1), 0, 0, 1)),
SUM(decode(InSTR(N.ANDERE, 'T', 1), 0, 0, 1)),
COUNT(N.ID)
Vielleicht kennt einer der Interbase-PROs hier eine Übersetzung zu Interbase.
Ich kenn mich auch nur mit Oracle aus.