2010-11-24 4 views
1

Ich habe eine Microsoft SQL Query:Hafen Microsoft SQL SELECT CASE zu Crystal Reports 11

SELECT case 
      when ReHired Is Null Then HireDate 
      else ReHired 
     end CheckDate 
FROM 
     Employees 

Dies ist natürlich eine Spalte erstellt - checkdate - entweder mit dem HireDate oder Re-HiredDate.

Wie kann ich dieselbe Funktionalität in Crystal Reports portieren?

+0

Danke für die Formatierung dieses Conrad. :-D – Shawn

Antwort

2

Ich wusste, bevor ich das fragte, dass SQL-Ausdrucksfelder in CR aussah und klang wie, was ich wollte, aber ich versuchte ein paar Dinge und konnte es nicht zum Laufen bringen.

Schließlich schaffte ich es aber .. Erstellen Sie einfach ein SQL-Ausdrucksfeld, stecken Sie den Select-Ausdruck - CASE When ReHired IST NULL THEN HireDate ELSE ReHired END CheckDate -.

Dann verweisen Sie einfach als {% CheckDate} innerhalb Ihrer CR-Formeln und Ausdrücke. Sehr einfach, sehr kraftvoll, genau das, was ich wollte.

Hoffe das hilft jemand anderen in der Zukunft.

0

In CR erstellen Formel namens checkdate mit folgendem Inhalt:

if isnull({Employees.ReHired}) 
then {Employees.HireDate} 
else {Employees.ReHired} 

und diese Formel in Bericht verwenden. Beachten Sie, dass, wenn Ihr Bericht „Convert NULL auf Default-Werte“ hat Option gesetzt, müssen Sie erste Zeile some ähnlich ändern:

if {Employees.ReHired}=<your db default value for ReHired column> 
+0

Ich habe tatsächlich etwas Ähnliches wie ein erster Versuch getan: eine Variable erstellt, diese Überprüfung durchgeführt und versucht, diese Variable in den restlichen meinen Formeln zu verwenden, die sie für ihre Prüfungen benötigten. Leider würde dies nicht die Funktionalität geben, die ich in meiner tatsächlichen SQL-Abfrage benötigte, die CR ausgeführt wurde. – Shawn

0

Rahmen Ihrer „Basis“ Abfrage entweder als eine Ansicht auf dem SQL-Server, und dann Erlauben Sie Kristall, es zu filtern, oder als eine Tabelle, die parametrisierte gespeicherte Prozedur oder Funktion auf dem sql-Server zurückgibt und Kristall die Parameter übergibt. In beiden Fällen inklusive Ihres "berechneten" Feldes in der Ergebnismenge