Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#8

Re: SQL Problem mit Interbase

  Alt 20. Nov 2003, 11:52
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.
  Mit Zitat antworten Zitat