Création de requête concaténer selon deux id différents
Résolu/Fermé
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
-
14 janv. 2022 à 10:03
nix62 Messages postés 8 Date d'inscription vendredi 14 janvier 2022 Statut Membre Dernière intervention 15 janvier 2022 - 15 janv. 2022 à 17:26
nix62 Messages postés 8 Date d'inscription vendredi 14 janvier 2022 Statut Membre Dernière intervention 15 janvier 2022 - 15 janv. 2022 à 17:26
A voir également:
- Création de requête concaténer selon deux id différents
- Concatener deux cellules excel - Guide
- Creation compte gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création site web - Guide
6 réponses
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
14 janv. 2022 à 12:25
14 janv. 2022 à 12:25
bonjour,
Tu mélanges la description de ce que tu veux obtenir avec la description de comment tu ne réussis pas à l'obtenir.
Oublie provisoirement les fonctions, les concaténations et les requêtes.
Ceci est clair, mais incomplet:
"Le but étant de sortir un planning pour chaque artiste par date via un bouton sur mon formulaire Artiste."
N'hésite pas à donner un exemple de contenu des tables, et du résultat attendu.
N'oublie pas de donner la liste de tes tables (concernées) et de leurs champs.
Tu mélanges la description de ce que tu veux obtenir avec la description de comment tu ne réussis pas à l'obtenir.
Oublie provisoirement les fonctions, les concaténations et les requêtes.
Ceci est clair, mais incomplet:
"Le but étant de sortir un planning pour chaque artiste par date via un bouton sur mon formulaire Artiste."
N'hésite pas à donner un exemple de contenu des tables, et du résultat attendu.
N'oublie pas de donner la liste de tes tables (concernées) et de leurs champs.
Ok si tu le souhaites le plus simple c'est d'avoir le fichier directement.
https://wetransfer.com/downloads/bd6e55cec6b5c3899599ddc7d372c8a620220114130837/26dc46
J'ai pris le temps de créer un fichier description avec des screens pour expliquer au mieux le tout.
Est-ce que cela te convient ou tu préfèrerais que je fasse autrement ?
Merci en tout cas de m'avoir répondu.
https://wetransfer.com/downloads/bd6e55cec6b5c3899599ddc7d372c8a620220114130837/26dc46
J'ai pris le temps de créer un fichier description avec des screens pour expliquer au mieux le tout.
Est-ce que cela te convient ou tu préfèrerais que je fasse autrement ?
Merci en tout cas de m'avoir répondu.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
14 janv. 2022 à 15:01
14 janv. 2022 à 15:01
C'est amusant: rien, dans ton fichier, ne fait penser à ce qu'il y a dans ton code.
Si tu veux publier un état, le point de départ, c'est de créer une requête qui retourne l'information désirée.
SI je devine bien, tu veux publier un état avec, par ordre chronologique, les concerts d'un artiste.
Le point de départ, c'est une requête qui retourne toutes les infos de chaque spectacle.
Si tu veux publier un état, le point de départ, c'est de créer une requête qui retourne l'information désirée.
SI je devine bien, tu veux publier un état avec, par ordre chronologique, les concerts d'un artiste.
Le point de départ, c'est une requête qui retourne toutes les infos de chaque spectacle.
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
1
14 janv. 2022 à 15:11
14 janv. 2022 à 15:11
Et oui du coup j'ai supprimé car mon code ne fonctionnait pas comme je le souhaitais.
Oui voila c'est cela je veux par concert et pour chaque concert par artiste. et la je flanche :/
Oui voila c'est cela je veux par concert et pour chaque concert par artiste. et la je flanche :/
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
14 janv. 2022 à 15:21
14 janv. 2022 à 15:21
Le point de départ, c'est une requête qui retourne toutes les infos de tous les spectacles.
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
1
>
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Modifié le 14 janv. 2022 à 15:51
Modifié le 14 janv. 2022 à 15:51
Ok donc je dois créé une requête basique qui réunis tous les champs de table dont j'ai besoin pour créer les prochaines requête si je comprend bien.
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
1
14 janv. 2022 à 16:00
14 janv. 2022 à 16:00
Ok donc je crée une requête basique qui contient tous les champs des divers tables dont j'ai besoin pour créer mes tableaux.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
14 janv. 2022 à 16:44
14 janv. 2022 à 16:44
En effet, il suffira ensuite, à l'entrèe de l'état, de filtrer sur base de l'artiste.
Nix62
>
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Modifié le 14 janv. 2022 à 17:03
Modifié le 14 janv. 2022 à 17:03
Je suis d'accord mais c'est vrai que dans la description il y a quelque chose de mal expliqué. Malheureusement je suis en voiture et je pars en réunion. Mais en fait il est possible qu'un artiste intervient dans divers troupe pour le même spectacle. Et il faudrait donc que dans ce cas les données soient sur une seule ligne. D'ou le besoin de concaténer.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
>
Nix62
14 janv. 2022 à 18:01
14 janv. 2022 à 18:01
Je comprends maintenant ce que tu essayais d'expliquer au départ!
Le mot magique qui manquait, c'est agrégation, ou regroupement d'enregistrements.
Tu voulais agréger plusieurs enregistrements, regrouper tous les enregistrements ayant des valeurs identiques pour certains champs, en concaténant un autre champ.
Comme tu te décrivais "très limité en SQL", je n'ai pas fait confiance que ce que tu montrais était proche de ce dont tu avais besoin. Tu n'as pas non plus décris ce que cela donnait, et en quoi c'était différent de ce que tu voulais.
Pour commencer:
Puis je ferais une requête GENERAL2
Puis la requête de base de l'état
Le but étant de faire d'abord le DISTINCT, puis d'appeler RecupNomTroupe122 dans la requête suivante, afin de réduire le nombre d'appels à la fonction. Tu peux aussi ajouter simplement idArt à la requête que tu présentais au départ.
Le mot magique qui manquait, c'est agrégation, ou regroupement d'enregistrements.
Tu voulais agréger plusieurs enregistrements, regrouper tous les enregistrements ayant des valeurs identiques pour certains champs, en concaténant un autre champ.
Comme tu te décrivais "très limité en SQL", je n'ai pas fait confiance que ce que tu montrais était proche de ce dont tu avais besoin. Tu n'as pas non plus décris ce que cela donnait, et en quoi c'était différent de ce que tu voulais.
Pour commencer:
Public Function RecupNomtroupe122(idSP As Long, idArt as long) As String ' ... SQL = "SELECT TROUPE_NomTroupe FROM GENERAL1 WHERE idSP=" & idSP & " and idArt = " & idArt ' ...
Puis je ferais une requête GENERAL2
SELECT DISTINCT ... FROM GENERAL1 ...de tous les champs utiles, en éliminant TROUPE_NomTroupe de la liste des champs.
Puis la requête de base de l'état
SELECT ....., RecupNomTroupe122(idSP, idArt) AS TROUPE FROM GENERAL2;
Le but étant de faire d'abord le DISTINCT, puis d'appeler RecupNomTroupe122 dans la requête suivante, afin de réduire le nombre d'appels à la fonction. Tu peux aussi ajouter simplement idArt à la requête que tu présentais au départ.
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
1
>
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
15 janv. 2022 à 11:30
15 janv. 2022 à 11:30
Bonjour, désolé de n'avoir pu me reconnecté avant.
Et oui mon niveau n'est pas très bon mais niveau explication je suis peut-être encore pire ...
Je vais essayer cela et je reviens vers toi rapidement.
Et oui mon niveau n'est pas très bon mais niveau explication je suis peut-être encore pire ...
Je vais essayer cela et je reviens vers toi rapidement.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
>
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
15 janv. 2022 à 13:01
15 janv. 2022 à 13:01
Avec des troupes qui s'appellent SONO2 et SPECTACLE1,
et des sonos qui s'appellent ARTISTE1,
tu as encore du boulot pour construire un exemple clair.
et des sonos qui s'appellent ARTISTE1,
tu as encore du boulot pour construire un exemple clair.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je ramène mon grain de sel !
En fait ton problème est typique des problèmes qu'on rencontre dans ces situations. Le meilleur moyen est de construire une table relai qui te permette de sélectionner à partir de la table A les enregistrements de la table B lui correspondant, et réciproquement, ceux de la table A correspondant aux enregistrements de la table B . Dans ton exemple, ce sera toutes les dates où se produit un artiste, ou bien tous les artistes qui se produisent à une certaine date.
Ainsi ta table sera constituée de 3 champs : un champ IdTableLiaison, un champ IdArtiste, et un champ IdDate. Ainsi tu seras sûr qu'à chaque artiste correspond une série de date dont le couple IdArt/IdSp est unique. Après tu pourras construire toutes les liaisons dans un sens ou l'autre dont tu auras besoin. Mais oublie ton idée de concaténation qui n'est pas bonne;
Bon courage;
Je ramène mon grain de sel !
En fait ton problème est typique des problèmes qu'on rencontre dans ces situations. Le meilleur moyen est de construire une table relai qui te permette de sélectionner à partir de la table A les enregistrements de la table B lui correspondant, et réciproquement, ceux de la table A correspondant aux enregistrements de la table B . Dans ton exemple, ce sera toutes les dates où se produit un artiste, ou bien tous les artistes qui se produisent à une certaine date.
Ainsi ta table sera constituée de 3 champs : un champ IdTableLiaison, un champ IdArtiste, et un champ IdDate. Ainsi tu seras sûr qu'à chaque artiste correspond une série de date dont le couple IdArt/IdSp est unique. Après tu pourras construire toutes les liaisons dans un sens ou l'autre dont tu auras besoin. Mais oublie ton idée de concaténation qui n'est pas bonne;
Bon courage;
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
15 janv. 2022 à 12:12
15 janv. 2022 à 12:12
bonjour Tessel75,
Je n'ai pas vérifié la qualité de la structure des données, et il est possible qu'elle ne soit pas optimale.
Je ne vois cependant pas en quoi il est nocif de faire de l'agrégation par concaténation, ni en quoi cela serait un indice d'une mauvaise structure.
Si un artiste peut intervenir dans plusieurs troupes pour le même spectacle, je trouve tout à fait raisonnable, dans une requête, de regrouper toutes les combinaisons (article, spectacle) en concaténant les noms des troupes.
Peut-être confonds-tu avec la concaténation de plusieurs valeurs dans un champ d'un enregistrement d'une table? Il s'agit ici, non de table, mais de requête et d'état.
Je n'ai pas vérifié la qualité de la structure des données, et il est possible qu'elle ne soit pas optimale.
Je ne vois cependant pas en quoi il est nocif de faire de l'agrégation par concaténation, ni en quoi cela serait un indice d'une mauvaise structure.
Si un artiste peut intervenir dans plusieurs troupes pour le même spectacle, je trouve tout à fait raisonnable, dans une requête, de regrouper toutes les combinaisons (article, spectacle) en concaténant les noms des troupes.
Peut-être confonds-tu avec la concaténation de plusieurs valeurs dans un champ d'un enregistrement d'une table? Il s'agit ici, non de table, mais de requête et d'état.
nix62
Messages postés
8
Date d'inscription
vendredi 14 janvier 2022
Statut
Membre
Dernière intervention
15 janvier 2022
1
15 janv. 2022 à 17:26
15 janv. 2022 à 17:26
Un merci à Yg_BE pour son aide. Mon problème est maintenant résolu, je clos donc ce sujet ;)