2010-11-24 3 views
1

J'ai une requête Microsoft SQL:CASE Port Microsoft SQL SELECT pour Crystal Reports 11

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

Bien sûr, crée une colonne - checkdate - en utilisant soit le HireDate ou Re-HiredDate. Comment puis-je porter cette même fonctionnalité sur Crystal Reports?

+0

Merci pour le formatage que Conrad. :-D – Shawn

Répondre

2

Je savais avant de demander cela que les champs d'expression SQL dans CR ressemblaient et ressemblaient à ce que je voulais, mais j'ai essayé quelques petites choses et je n'ai pas réussi à le faire fonctionner. Enfin, cependant, j'ai réussi à .. Il suffit de créer un champ d'expression SQL, branchez l'expression de sélection - CAS QUAND ReHired EST NULL PUIS HireDate ELSE ReHired END CheckDate -. Ensuite, faites simplement référence à {% CheckDate} dans vos formules et expressions CR. Très facile, très puissant, exactement ce que je voulais.

J'espère que cela aidera quelqu'un d'autre à l'avenir.

0

CR créer formule nommée checkdate avec le contenu suivant:

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

et utiliser cette formule dans le rapport. Notez que lorsque votre rapport a « Convertir les valeurs NULL par défaut » jeu d'options, vous devez changer la première ligne à someting similaire:

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

En fait, j'ai fait quelque chose de similaire à une première tentative: créer une variable, faire cette vérification, et tenté d'utiliser cette variable dans le reste de mes formules qui l'ont exigé pour leurs vérifications. Malheureusement, cela ne me donnerait pas la fonctionnalité dont j'avais besoin dans ma requête SQL réelle que CR exécutait. – Shawn

0

cadre de votre requête « de base » comme d'une vue sur le serveur SQL, puis permettre à Crystal de le filtrer, ou en tant que table retournant une procédure ou une fonction stockée paramétrée sur le serveur sql et faire passer les paramètres par le cristal. Dans les deux cas, y compris votre champ "calculé" dans le jeu de résultats