0
votes

Comment écrire si il existe une instruction qui exécuterait une sélection différente selon elle si elle existe ou non

J'essaie de convertir un SQL si existe instruction dans un format SSRS valide pour exécuter un rapport sur CRM.

CRM Signaler n'accepte pas le rapport sur le téléchargement si j'ai un < Code> Si existez Méthode, j'ai des problèmes de détermination de ce que je peux utiliser à sa place. xxx

Je veux être capable d'exécuter le Sélectionner [instruction 1] si la condition est true sinon, je veux exécuter Sélectionner [Déclaration 2]


5 commentaires

Je ne peux pas donner de données comme sa sensible, mais le résultat que j'attendrait exécuterait une énoncé de sélection différent selon que si le cas échéant est de retourner quelque chose, je suis tellement sûr où ou quoi chercher. SQL n'est pas mon point fort.


Je ne peux toujours pas obtenir cela pour travailler, tout ce que j'essaie de continuer à obtenir des erreurs lorsque j'essaie de télécharger le fichier .rdl à la CRM disant que quelque chose à l'intérieur du fichier .rdl n'est pas valide.


Si quelqu'un demande des données d'échantillonnage, il ne doit pas nécessairement être réel, il suffit de représenter les mêmes types de données et contextes, il suffit de modifier les noms des personnes, des entreprises, des noms de compte, etc. et mettez des nombres aléatoires à la place des vrais.


S'il s'agit d'un rapport de CRM, SQL n'est pas pris en charge. Dans quelle version de crm s'agit-il?


Ceci est pour le CRM 8.2.2.112


5 Réponses :


0
votes

Essayez ceci -

Vous devez mettre votre relevé entière dans @ select1 code> et @ select1 code>. p>

declare @statement1 as varchar(max);
declare @statement2 as varchar(max);

SET @statement1 = 'SELECT 1'
SET @statement2 = 'SELECT 2'

IF EXISTS(select * from dbo.FC where dbo.FC.ContactID in (select dbo.AV.so_contactid from dbo.AV))

    BEGIN
        EXEC (@statement1)
    END

ELSE 

    BEGIN
        EXEC (@statement2)
    END


1 commentaires

Ces erreurs toujours sur le téléchargement du fichier .rdl indiquant que ce n'est pas valide.



0
votes

Je pense que vous avez besoin de quelque chose comme ceci: xxx


4 commentaires

Est-ce que je garde l'existence? c'est-à-dire cas quand il existe (...)


Je vais donner ceci un aller et vous faire savoir, apprécie vraiment l'aide comme il est très difficile d'obtenir des réponses de la recherche


Je reçois toujours une erreur lorsque vous téléchargez ceci sur les rapports CRM, disant que le fichier .rdl n'est pas valide


Comme vous n'avez pas posté les noms de colonne de votre sélection, je viens de composer certains pour vous et vous devez les traduire en noms réels. Vous devez également avoir le même numéro, le même type et l'ordre des colonnes dans l'ensemble ... et l'autre .... SQLServer a une chance de construire une table comme un ensemble de résultats. Si vous avez besoin de plus d'aide, postez les déclarations de création de tables AV, FA et FC. Avez-vous installé Microsoft SQL Server Management Studio pour tester vos requêtes?



0
votes

Au lieu d'utiliser si vous n'existe pas, vous n'obtenez pas de comptage d'enregistrements répondant aux critères, puis si son 1 ou plus exécutez une requête différente, comme l'appellé si elle était égale à 0.

Faites-moi savoir si je manque quelque chose ce que vous essayez d'atteindre.

Désolé je suis incapable de mettre des commentaires en raison d'un nouveau compte, donc ma réputation est faible.


0 commentaires

0
votes

Quelques points à noter: Lorsque SSRS évalue la requête, il s'attend à ce que les reslutes aient toujours la même structure en termes de noms de colonne et de types.

Donc, vous êtes ne peut pas faire quelque chose comme ça .. xxx

... car cela retournera différents types et noms de colonne et de colonnes.

ce que vous pouvez faire est-ce .. xxx

al que nous faisons est de créer une table pouvant gérer toutes les variantes des données et mettre les résultats dans toutes les colonnes peuvent accueillir ce type de données.

Ceci renvoie toujours la même structure de données afin que SSRS soit heureux, vous devrez alors gérer les colonnes pour afficher vos données à partir de vos données. Basé sur ce qui est retourné, pourquoi j'ai ajouté le type de résultat aux résultats afin que vous puissiez tester cela à partir du rapport.


1 commentaires

Merci beaucoup pour cela, cela a fonctionné, après avoir parlé à une collègue, j'ai réglé le problème, je l'ai fait au lieu d'une jointure que je fais à gauche rejoint les deux tables dans le même choix et exécutant le rapport de toutes les données à la place. des différentes sélections.



1
votes

J'ai réussi à faire fonctionner cela pour travailler en faisant un joint code> code> au lieu d'un joindre code>.

select [STATEMENT 1 + 2 all columns needed]
from dbo.AV CRMAF_so_AV 
left join dbo.FC c on CRMAF_so_AV.so_contactid = c.ContactID;
left join dbo.FA a on CRMAF_so_AV.so_contactid = a.AccountID;


0 commentaires