2014-05-20 5 views
1

J'ai la requête suivante ci-dessous, et j'essaie de filtrer les résultats en utilisant un paramètre d'entrée.Paramètre pour filtrer les résultats de la requête

J'essaie soit d'afficher tout, soit un nom de serveur spécifique et ses informations correspondantes.

C'est ce que j'ai:

DECLARE @p_ServerName varchar(10) 
DECLARE @p_Env nvarchar(10) 
DECLARE @p_EnvCat nvarchar(10) 

SELECT  BlockSize, BootVolume, Compressed, SystemName, Label, Caption, PageFilePresent, 
      [dbo].[CCS_DIGITAL_STORAGE_CONVERTER]('B', 'GB', Capacity) AS Capacity, 
      [dbo].[CCS_DIGITAL_STORAGE_CONVERTER]('B', 'GB', FreeSpace) AS [Free Space], 
      [dbo].[CCS_DIGITAL_STORAGE_CONVERTER]('B', 'GB', Capacity - FreeSpace) AS [Used Space], 
      100 * FreeSpace/Capacity AS [Free Space %], 

      [CLE_ENV_SHORT], [CLE_ENV_CAT_SHORT] 

FROM  CCS_Win32_Volume, [dbo].[CCS_V_SERVER_INSTANCE_DETAILS] 

WHERE SystemName = @p_ServerName 

SSRS l'aperçu montre aucun résultat. Est-ce que quelqu'un peut m'aider avec ça? Je suppose qu'il y a quelque chose de mal avec la clause WHERE? Et peut-être aussi la façon dont j'ai configuré le paramètre: S

+0

Ajouter quelques captures d'écran des paramètres SSRS mis en place, ses valeurs par défaut et ses valeurs –

+0

L'aspect sql semble-t-il correct, en termes de définition du paramètre? @PreetSangha – choloboy

+0

Vous devrez affecter une valeur avant d'utiliser les variables locales, à savoir 'DECLARE @p_ServerName varchar (10) = 'ServerFilter'. N'y a-t-il pas de condition de jointure entre les tables 'CCS_Win32_Volume' et' [dbo]. [CCS_V_SERVER_INSTANCE_DETAILS] '? – StuartLC

Répondre

2

Si vous essayez de tester votre requête dans le studio de gestion, vous devez attribuer une valeur à votre variable locale. Il est actuellement NULL et même s'il y a des valeurs NULL dans cette colonne, vous ne pouvez pas utiliser l'opérateur égal pour correspondre à NULL, donc vous n'obtiendrez aucun résultat. Lorsque vous utilisez cette requête dans SSRS, vous devez supprimer les déclarations de variables locales car elles ne sont pas nécessaires. SSRS créera effectivement des variables locales avec les valeurs données aux paramètres. La déclaration des variables dans la requête utilisée dans SSRS vous donnera une erreur ou aucun résultat. En bref: Attribuez une valeur à vos variables locales lors des tests dans SSMS. Supprimez les déclarations de variables locales lors de l'utilisation de la requête dans SSRS.

Questions connexes