Je me demande s'il existe un moyen d'effectuer une jointure entre requêtes dans SSIS sans utiliser de table temporaire sur mon serveur. Étant donné deux tables, comptes et groupes.Utiliser SSIS pour faire une requête entre
Comptes contient une liste de comptes avec une plage supérieure et inférieure pour définir une liste de clients. Les groupes contiennent tous les clients. Je veux pouvoir joindre les tables afin que j'obtienne tous les comptes et les clients attachés à ces comptes. Si c'était juste un compte que j'ai requis, je pourrais utiliser une division conditionnelle cependant je veux tous les comptes et tous les clients des groupes.
Les tables proviennent de systèmes distincts, donc placer la requête dans une source de données n'est pas une option.
Si les tables étaient sur le même système, je pourrais utiliser la requête suivante.
SELECT
Accounts.Account,
Groups.Customer
FROM
Accounts,
Groups
WHERE
Accounts.AccountType = 1 AND
Groups.GroupName BETWEEN Accounts.LowerGroup AND Accounts.UpperGroup
Toutes les idées sur la procédure à suivre dans un package SSIS. Je n'aime vraiment pas ma méthode actuelle d'enregistrer les deux tables sur le serveur, mais j'ai du mal à trouver un moyen de le faire dans une seule tâche de flux de données.
Michael qui est en fait une très bonne idée et pas quelque chose que j'ai même consiered. (c'est quelque chose que je peux utiliser pour certains de mes autres paquets merci) Cependant dans mon cas les gammes de groupe se croisent. Les clients peuvent appartenir à plusieurs comptes. Est-ce que mon cas est désespéré? –
Vous pouvez toujours essayer quelque chose comme ça avec plusieurs groupes de course: (1) créer deux rangées pour chaque groupe, une pour la limite inférieure, une pour la partie supérieure. (2) fusion complète jointe (3) le script devient plus complexe - garder une trace de la liste des groupes, et de sortie plusieurs lignes (un pour chaque élément de la liste). – Michael