Je essaie d'utiliser une cellule comme paramètre dans Excel PowerQuery. La requête fonctionne sans cela, mais je dois entrer manuellement les valeurs, que je dois constamment modifier dans la requête pour obtenir les résultats souhaités.
Requête (Éditeur avancé):
let
Criteria01 = Excel.CurrentWorkbook(){[Name="Servers"]}[Content][ServerSearch]{0},
Criteria02 = Excel.CurrentWorkbook(){[Name="Servers"]}[Content][ServerSearch]{1},
Criteria03 = Excel.CurrentWorkbook(){[Name="Servers"]}[Content][ServerSearch]{2},
Source = Sql.Database("NOMSERVEURICI", "NOMBASEDEDONNÉESICI", [Query="SELECT DISTINCT [...........] AND (TABLEPREF.COLONNEICI like '%VALEURMANUELLE01%' OR#(lf)TABLEPREF.COLONNEICI like '%VALEURMANUELLE02%' OR#(lf)TABLEPREF.COLONNEICI like '%VALEURMANUELLE03%' OR#(lf)TABLEPREF.COLONNEICI like Criteria01)#(lf)#(lf)#(lf)order by 1 asc"])
in
Source
"Servers" est le nom de la table et "ServerSearch" est l'en-tête de colonne. Si je vérifie l'étape pour Criteria01/etc, il m'affichera la valeur correcte de cette table que j'ai besoin d'utiliser.
Requête originale réalisée dans Sql-Server. Je n'ai aucun problème lorsque j'exécute la requête avec seulement des lignes LIKE '%VALEURSMANUELLES%'.
Mon objectif principal est de obtenir automatiquement N valeurs de "VALEURSMANUELLE" à partir d'une table dans une feuille, qui seront utilisées en tant qu'entrée pour la comparaison WHERE TABLEPREF.COLONNEICI like '%VALEURICI%'. Je dois utiliser ceci et je ne peux pas obtenir la table/base de données entière car il y a beaucoup trop de résultats autres que ceux que je veux.
Cependant, à des fins de test en ce moment, j'essaie d'utiliser seulement 1 à 3 valeurs, les trois premières de cette table (Criteria{0}{1}{2} dans la requête ci-dessus). Cependant, si j'essaie de faire quelque chose comme TABLEPREF.COLONNEICI like Criteria01, j'obtiens l'erreur suivante :
Erreur de Source de données: Microsoft SQL: Nom de colonne invalide 'Criteria01'.
Détails:
DataSourceKind=SQL
DataSourcePath=dalsql390;itdw
Message=Nom de colonne invalide 'Criteria01'.
Number=207
Class=16
Donc mes questions sont :
-
Je récupère la valeur de la cellule de la table de la bonne manière ? Signifiant : Excel.CurrentWorkbook(){[Name="Servers"]}[Content][ServerSearch]{0}.
-
Comment référencer cette valeur dans ma requête ? Puisque la manière dont j'ai écrit cette requête m'a donné cette erreur.
Notez également que si je change TABLEPREF.COLONNEICI like Criteria01 en CHG1.CI_Name like "Criteria01", j'obtiens l'erreur suivante :
Erreur de Syntaxe d'Expression: Comma attendue.
-
Après avoir corrigé 1 et 2, comment puis-je l'utiliser de manière dynamique ? Par exemple, au lieu d'obtenir les valeurs des index 1 2 3, que faire si je veux utiliser toute une table ? Je sais qu'en utilisant Excel.CurrentWorkbook(){[Name="Servers"]}[Content] cela m'apportera la table entière des valeurs (1 colonne, nombre de lignes inconnu), mais comment utiliser ce contenu de table 1 par 1 dans ma requête?