0
votes

Comment générer un produit cartésien de deux tables internes?

J'en ai une nécessité simple. Il y a deux tables données:

 Entrez la description de l'image ici

Quel est le moyen le plus performant d'obtenir une troisième table avec toutes les combinaisons possibles des valeurs de ces tables, en commençant par les valeurs de la première table? Bien comme 1a, 1b, 1c, 2a .....c.

Y a-t-il un cadre standard que je pourrais utiliser pour cela?


4 commentaires

Les tables sont-elles tables de la base de données?


Non, tables internes


C'est un algorithme très basique qui peut être écrit dans une déclaration. Comme il ressemble à un devoirs , vous devriez au moins expliquer ce que vous avez essayé, etc. Je ne comprends pas pourquoi il devrait être un "cadre" pour cela.


Merci pour les commentaires, Sandra! Le problème réel était un peu plus compliqué et je viens de simplifier autant que je pouvais, mais vous êtes totalement correct, c'est très simple et je pouvais le résoudre avec une seule déclaration. J'ai déjà demandé à la question d'être fermée.


3 Réponses :


-1
votes

Vous pouvez charger toutes les valeurs aux tables internes, puis faire une boucle imbriquée pour remplir une nouvelle table interne avec des colonnes de concaténate.


1 commentaires

Merci pour les commentaires. Pour particulièrement, ces table dans ma question, ce n'est pas un problème. Mais quand j'ai deux tables avec plus de 100 entrées, je me demandais s'il y a une bonne façon, peut être construit dans Abap peut être utilisé



0
votes

On dirait que vous avez besoin d'un produit cartésien de deux tables. Dans ce cas, utilisez un jointure comme décrit ICI

Code citation de l'article: xxx


2 commentaires

Merci pour les commentaires! Oui, ce dont j'ai besoin, mais pour les tables internes et je me demandais s'il y a un moyen élégant de le faire sans boucles imbriquées


Je ne pense pas qu'il y ait une croix de jointure pour des tables internes, alors les boucles seraient la seule solution pour vous si les données ne proviennent pas de la base de données. Si cela devait cependant, vous devriez envisager de faire la jointure croisée avant de mettre les données dans des tables internes.



0
votes

C'est le plus court une doublure que je peux imaginer xxx

bien que, il utilise une boucle imbriquée, mais pas. Cette notation n'est pas très lisible mais néanmoins courte. Je suis sûr qu'il y a aussi un moyen de le faire avec valeur..fo mais je crois que ce sera plus verbeux.

Bien sûr, vous devez ajuster les types pour vos tables réelles et Testez sur un ensemble de données plus grand.


0 commentaires