J'ai un fichier CSV et l'un des champs nommés Ce problème avec ceci est alors que mon ensemble de données a la requête suivante: Ce code fonctionne bien pour la zone, le flux et le client, j'obtiens une incompatibilité de type de données de période. Est-il possible d'utiliser Powerquery pour que le csv pense que période
stocke le numéro. Maintenant, dans SSRS, je dois utiliser un paramètre à valeurs multiples, en raison du fonctionnement de SSRS pour l'utiliser avec un CSV, je dois faire Join (Parameters! Period.Value, ",") code >.
="SELECT WarehouseZone, RevenueStream,ClientID,CONVERT(varchar(10),Period) FROM BudgetCSV.csv
WHERE WarehouseZone IN ('" & Join(Parameters!Warehouse.Value,"', '") & "')
AND (RevenueStream IN ('" & Join(Parameters!AnalysisCode.Value,"', '") & "'))
AND (ClientID IN ('" & Join(Parameters!Customer.Value,"', '") & "'))
AND (CONVERT(varchar(10),Period) IN ('"& Join(Parameters!Period.Value, "','") & "'))"
période
est du texte. J'ai vu quelque part qu'en faisant dire à la colonne = "1"
, cela interpréterait cela comme du texte au lieu d'un entier.
3 Réponses :
Vous pouvez utiliser Text.From ou Number.ToText pour convertir une valeur numérique en texte.
Number.ToText(Period)
ou
Text.From(Period)
Salut, cela ne semble pas fonctionner car lorsque je l'exporte au format CSV, il considère toujours la colonne comme un entier.
MODIFIER: CE QUI SUIT NE FONCTIONNE PAS - L'utilisation de cette méthode ne fonctionne qu'au niveau individuel, heureusement il y a une meilleure solution
J'ai donc mentionné dans un article précédent que je pourrais me déplacer en utilisant la jointure en créant un seul paramètre pour chaque période, mais cela causait un problème où si je sélectionnais 10, 1 serait également renvoyé car, des chaînes.
Cela est dû au fait que j'ai utilisé le code suivant sur chacun de ces paramètres
=iif(Join(Parameters!Period.Value,",") = 1, 1,-999)
Changement simple de ce code en ce qui suit
=iif(Join(Parameters!Period.Value,",").ToLowerInvariant().Contains("10"), "10",-999)
Le problème est donc résolu, mais toute entrée sur la façon dont je pourrais faire fonctionner une solution plus dynamique serait formidable car il se peut que dans le futur, je doive utiliser une liste de nombres plus longue.
Ajout comme une autre réponse pour la postérité pour voir mes erreurs.
Il existe en fait un moyen beaucoup plus simple d'y parvenir.
En ajoutant le filtre ci-dessus à l'ensemble de données, vous pouvez y parvenir sans avoir besoin de SQL ou de paramètres supplémentaires. C'est probablement évident pour quiconque travaille avec SSRS depuis un certain temps, mais je suis plutôt nouveau dans ce domaine.