none
Wert 'unendlich' in Report RRS feed

  • Frage

  • Hallo an Alle,

    in per SSRS angezeigten reports erscheint zuweilen die Anziege 'unendlich'. Beispielsweise wenn eine Spalte einen NULL-Wert enthält oder den Wert 0 enthält. Gibt es eine Möglichkeit in solchen Fällen grundsätzlich eine 0 statt des 'unendlich' darstellen zu lassen oder jedes Reportfeld mit einer IIf-Funktion zu versehen?

    Danke und gruß,
    Karl
    Donnerstag, 3. Dezember 2009 11:53

Antworten

  • Hallo Karl,

    es handelt sich um einen Produktfehler einer älteren SQL Server Version. Es war möglich einen Wert, der außer einer definierten Grenze lag, in einer Spalte zu speichern.

    Mit der Anweisung findest du die Fehler in der Datenbank:

    DBCC CHECKDB('<db_name,,varchar>')
    WITH DATA_PURITY
    GO

    So kann man die fehlerhaften Datensätze aktualisieren:

    • Kopie der Tabelle erstellen
      SELECT * INTO T2 FROM T1
    • Eine zusätzliche Spalte in der neue Tabelle hinzufügen
      ALTER TABLE T2 ADD Column2 varchar(24)
    • Werte der fehlerhafte Spalte in die neu Spalte speichern und alte Spalte löschen
      UPDATE T2 SET Column2 = Column1
      GO
      ALTER TABLE T2 DROP COLUMN Column1
      GO
    • Original und neue Tabellen über Primärschlüssel verknüpfen und die fehlerhafte Werte der Originaltabelle aktualisieren
      UPDATE T1 SET Column1 = NULL
      FROM T1 INNER JOIN T2
      ON T1.ID = T2.ID
      WHERE T2.Column2 = 'unendlich' OR T2.Column2 LIKE '%#INF%' OR T2.Column2 LIKE '%#IND%'

    Gruß Yury
    Samstag, 1. Mai 2010 17:58

Alle Antworten

  • Hallo Karl,
    das ist mir so noch nicht untergekommen. Welche Version verwendest Du? Kannst Du mal ein einfaches Beispiel posten, damit man das nachvollziehen kann?
    Einen schönen Tag noch, Christoph Muthmann Microsoft SQL Server MVP, http://www.insidesql.org
    Dienstag, 8. Dezember 2009 13:44
  • Hallo Karl

    Könntest Du Dein Problem lösen?

    Wenn ja, es wäre schön, wenn Du posten würdest wie es funktioniert hat, denn dann profitieren unter Umständen andere mit dem gleichen Problem davon.

    Grüße,
    Robert
    Montag, 11. Januar 2010 22:20
    Moderator
  • Hallo Karl,

    es handelt sich um einen Produktfehler einer älteren SQL Server Version. Es war möglich einen Wert, der außer einer definierten Grenze lag, in einer Spalte zu speichern.

    Mit der Anweisung findest du die Fehler in der Datenbank:

    DBCC CHECKDB('<db_name,,varchar>')
    WITH DATA_PURITY
    GO

    So kann man die fehlerhaften Datensätze aktualisieren:

    • Kopie der Tabelle erstellen
      SELECT * INTO T2 FROM T1
    • Eine zusätzliche Spalte in der neue Tabelle hinzufügen
      ALTER TABLE T2 ADD Column2 varchar(24)
    • Werte der fehlerhafte Spalte in die neu Spalte speichern und alte Spalte löschen
      UPDATE T2 SET Column2 = Column1
      GO
      ALTER TABLE T2 DROP COLUMN Column1
      GO
    • Original und neue Tabellen über Primärschlüssel verknüpfen und die fehlerhafte Werte der Originaltabelle aktualisieren
      UPDATE T1 SET Column1 = NULL
      FROM T1 INNER JOIN T2
      ON T1.ID = T2.ID
      WHERE T2.Column2 = 'unendlich' OR T2.Column2 LIKE '%#INF%' OR T2.Column2 LIKE '%#IND%'

    Gruß Yury
    Samstag, 1. Mai 2010 17:58