SSRS 2008 R2 - Report Builder 3.0 - Abfragen von SQL Server 2008 R2SSRS IF-Anweisung mit weniger als gleich kehrt schlecht zählen
Ich habe einen Bericht, die Daten aus einer Datenbank der die eine „Last_Executed“ Spalte . Mein Datensatz gibt eine Abfrage mit einer Spalte zurück, die einem DATEDIFF()
gewidmet ist, der die Anzahl der Tage seit der Ausführung zur Laufzeit zurückgibt. Was ich jetzt brauche, ist ein Filter, der in den letzten 7 Tagen funktioniert.
Sie könnten sagen, "machen Sie einfach einen anderen Datensatz und setzen Sie Ihre Abfrage, um nur diese zurückgeben" und ich kann nur brechen und tun, aber ich kann nicht helfen, aber denke, es gibt eine bessere Lösung mit den Daten I haben.
Es gibt ein einzelnes Textfeld mit einem Platzhalter, den ich diese Anzahl anzeigen möchte. Ich habe versucht, (Wenn die Syntax für die Felder aus ist es nur meine Erinnerung sein kann, die, wenn Prüfung, was ich in Frage):
=SUM(IIF((Fields!MyData.Value <= 7),1,0),"MyDataSet")
=SUM(IIF(Cint(Fields!MyData.Value <= 7),1,0),"MyDataSet")
=COUNT(Fields!MyData.Value <= 7)
Der Umfang außerhalb der „IF“ werden musste hinzugefügt ermöglichen der Verweis auf die fraglichen Daten natürlich. Ich habe Variationen der "Besetzung" versucht, aber keine gab die richtige Anzahl zurück. Die Ergebnismenge gibt 1400 Elemente zurück, und meine Testdaten sollten basierend auf der Datumsprüfung 41 zurückgeben. Ich bekomme 581, 581 und 1400 bzw. wenn ich die "<" entferne und einfach den Wert gleich 7 setze, bekomme ich meine 41 in den ersten beiden bedingten Prüfungen.
Warum funktioniert die "< =" nicht mit der SUM - IIF?
Lösung gefunden:
die NULL kehrt aus der Abfrage Es stellte sich heraus verursacht wurden, die schlechten Zählungen in der Summe. Die endgültige Summe Ausdruck endete als:
=SUM(IIF(IsNothing(Fields!MyData.Value),0,IIF(Fields!MyData.Value <= 7,1,0)),"MydataSet")
Die 0 auf gilt für die IsNothing
Check mein Problem behoben, schade, dass ich nicht zuerst für NULL Fehler überprüfen haben. Vielen Dank für Ihre Hilfe :)
Ich fand das Problem, es ist der NULL, kann nicht glauben, dass ich das zuerst nicht überprüft habe! Ich versuche jetzt, die NULL aus den Zählungen zu entfernen, bekomme aber immer noch eine schlechte Rückkehrnummer. Zum Beispiel: 'code' = SUMME (IIF (IsNothing (Felder! MyData.Value), IIF ((Felder! MyData.Value <= 7), 1,0), 0)," MyDataSet ")' code' Immer noch die NULLs hier aber :) –
Okay, meine Summe war in diesem letzten Kommentar schlecht, ich fügte erfolgreiche Funde von null hinzu, also würde ich 1400 bekommen. Es zu ändern, um nur 1 auf Fehler des ersten IF hinzuzufügen, hätte funktionieren sollen, aber jetzt bekomme ich ein Fehler 'code' = SUM (IIF (Felder! MyData.Value =" NULL ", 0, IIF (Felder! MyData.Value <= 7,1,0))," MyDataSet ")' code' Ich werde bekommen es früher oder später! –