SQL Server 2005 Reporting Services: Wie zählen von Zeilen, die nicht null sind? Hinweise für die Berechnung von Summen?
Mithilfe von Reporting Services in SQL Server 2005: gibt es eine Möglichkeit zu zählen, werden nur Datensätze, die nicht null sind; ähnlich wie "COUNTA" in Excel? Ich würde denken, das wäre sehr einfacher Prozess, aber nichts, was ich versucht habe hat funktioniert. Ich habe zum Beispiel versucht, mit dem folgenden Ausdruck für "Abgeschlossen", das ist eine Spalte, die ich bin versucht zu zählen:
=count(IIF(Fields!Abgeschlossen.Value="ENDE"))
Allerdings löst dies das "falsche Anzahl von Argumente" Fehler. "Abgeschlossen" einen Wert von "Ende" oder null sein.
Wenn nötig, kann ich versuchen, diese in meine SQL-Abfrage, aber die Abfrage ist schon unglaublich kompliziert.
Habe ich dann auch gefunden, sehr wenig Dokumentation wie berechne Bericht Summen, und wie Sie insgesamt von Gruppen. Würde jemand irgendwelche Empfehlungen, was man als Referenz verwenden?
Update: bei einer weiteren Untersuchung, den Ausdruck =SUMME(IIF(IsNothing(Felder!Abgeschlossen.Value),0,1)) HAT in der Tat zurück, das entsprechende Anzahl von Datensätzen. Ich machte den Fehler, zu denken, dass der Bericht würde tally die Anzahl der Datensätze in dem aktuellen Bericht mit "Ende" für einen Wert. Da der Bericht-Gruppen auf "Fertig", "Ende" zeigt nur einmal in den Bericht für jede unique-ID (auch gruppiert, oben Abgeschlossen). So dass ich wirklich brauchen, um zu zählen (dem?) basierend auf Teilergebnissen,...wenn das überhaupt noch möglich ist.
InformationsquelleAutor user329266 | 2010-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte genau das tun, was Sie jetzt brauchen.
Danke, Kenneth. Ich habe versucht, Ihre überarbeiteten Ausdruck, aber das Ergebnis ist näher an der Gesamtzahl von null-Werten als die Anzahl der nicht-null-Werte. Um herauszufinden, was das Gegenteil von "IsNothing" sein könnte.
Dies funktioniert perfekt für mich. RS2005? Tauschen Sie die 0 & 1 zu testen, Ihre Theorie.
Habe gerade versucht das vertauschen der 0 und 1. Habe auch versucht mit zu Zählen und nicht Summieren, da ich möchte, dass Sie die Gesamtzahl der Ergebnisse, die nicht null sind. Die Ergebnisse sind die gleichen, wenn ich swap 0 mit 1, wie Sie in Ihren ursprünglichen Positionen. Nur um zu versuchen etwas anderes, ich habe auch versucht, die Summe, mit 0 und 1 in der ursprünglich Positionen und dann getauscht. Weder die richtigen Ergebnisse werden zurückgegeben. Ja, das ist Reporting Services 2005.
InformationsquelleAutor Kenneth
In der Regel, wenn Sie versuchen, um die Summe einer Spalte mit Wert, dann müssen Sie daran denken, dass
NULL
+ alles istNULL
. Also um dies zu umgehen, können Sie etwas tun:Was dieser code tut, ist sicherzustellen, dass, wenn col1 hat eine
NULL
Wert, wir machen es 0, bevor Sie versuchen die Summe so, dass wir immer eine gültige Summe Ergebnis.So, als Dinge zu tun, wie immer Bericht Summen, etc., es ist wichtig zu erinnern, diesen Schritt bei der Zusammenfassung Ihre Werte.
Als für die erste Datensätze, die NICHT NULL sind, müssen Sie definieren, was das bedeutet. Bedeutet das, dass "jede Spalte in der Zeile sein muss, NICHT NULL", nur den bestimmten, etc?
Im Allgemeinen, Sie können überprüfen, die eine Spalte nicht null durch die Ausstellung:
Würden Sie brauchen, um zu wiederholen, dass die WHERE-Klausel-Bedingung für alle Spalten, die Sie wollen, nicht
NULL
.SELECT SUM(ISNULL(COL1,0))...
Ja, Sie entspricht in diesem Beispiel.
Ok, aber ich bin versucht, zu zählen, nur auf null-Werte in den Bericht, im Gegensatz zu der SQL-Anweisung...es sei denn, es ist ein Weg, stecken Sie diesen in den Bericht außerhalb der SQL-Anweisung auf der Registerkarte "Daten"? Ich habe empfohlen, nicht zu verwenden Unterberichte, wenn das, was Sie waren zu denken.
Zu wiederholen, aus der nach unten, die Spalte, die ich bin versucht zu zählen (nicht Summe) wird entweder ein Wert von "Ende", oder es wird null sein.
Ich weiß nicht wirklich verstehen, was der Unterschied zwischen "null-Werte in den berichten" und "null-Werte in den Daten" ist. Wenn Sie wünschen, erhalten Sie die Anzahl der Zeiten, die eine bestimmte Spalte null ist, dann können Sie einfach "SELECT COUNT(*) FROM your_table WO col1 IS NULL". Vielleicht können Sie Bearbeiten Ihre Frage und liefern einige echte Daten, und was erwarten Sie als Ausgabe.
InformationsquelleAutor dcp
In Ihrem letzten Kommentar sagen Sie: "ich wirklich brauchen, um zu zählen (dem?) basierend auf Teilergebnisse...wenn das überhaupt noch möglich ist"
Einer Weise, dass ich arbeite, um dieses in SSRS ist zu berechnen ein dataset für den Bericht, hat Spalten für meine Teilsumme Werte. Grundsätzlich habe ich vorberechnen der Zwischensummen, und dann habe ich diese Werte überall in meinem Bericht. Diese kann getan werden, in einem Bericht datamart, oder in der gespeicherten Prozedur, erzeugt das dataset. Das ist zwar irgendwie umständlich, ich finde, es ist manchmal einfacher, als zu versuchen zu verbiegen, SSRS, um meinen Willen. Ich dachte, ich würde erwähnen, falls es nützlich ist.
Können Sie diesen code ausführen, um eine visuelle, für das, was ich meine -
InformationsquelleAutor soo