Benutzer mit den meisten Antworten
Wert 'unendlich' in Report

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
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- Als Antwort vorgeschlagen Yury Iwtschenko Samstag, 1. Mai 2010 18:00
- Als Antwort markiert Robert BreitenhoferModerator Montag, 3. Mai 2010 07:20
- Kopie der Tabelle erstellen
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 -
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- Als Antwort vorgeschlagen Yury Iwtschenko Samstag, 1. Mai 2010 18:00
- Als Antwort markiert Robert BreitenhoferModerator Montag, 3. Mai 2010 07:20
- Kopie der Tabelle erstellen