Je rencontre fréquemment des problèmes lorsque je tente de joindre plusieurs tables de données et je ne sais pas ce qui me manque.
Le plus souvent, je cherche à joindre des tables en faisant correspondre une date. Parfois, cela fonctionne sans problème, parfois je me bats beaucoup et je dois essayer un grand nombre d'options différentes dans le dialogue de jointure.
En règle générale, j'ai une table A avec des milliers de lignes qui enregistrent les données de la machine. Chaque ligne a un horodatage DateTime. Je crée une colonne Date à l'aide de la commande substr() sur les 10 premiers caractères de la chaîne DateTime, puis ma colonne date est au format AAAA-MM-JJ. Chaque date peut être associée à des milliers de lignes individuelles.
Le tableau B est une liste de produits par jour.
J'essaie de joindre le tableau A au tableau B, de sorte que j'ai une étiquette de produit étiquetée sur chaque ligne individuelle du tableau A. (par exemple, si le tableau A contient 150 000 lignes représentant 100 jours de données, le tableau B contient 100 lignes de produit par date, le tableau C contient 150 000 lignes des données d'origine, avec une étiquette de produit tirée du tableau B.) Je l'ai fait avec succès plusieurs fois dans le passé, mais je rencontre parfois des problèmes pour le reproduire, et je ne peux pas comprendre pourquoi.
Certaines choses que j'ai déjà essayé:
-Vérifiez que je n'essaie pas de faire correspondre les données AAAA-MM-JJ avec les données AAAA-MM-JJ H:M:S
-Assuré que les formules utilisées pour extraire les données de date des colonnes DateTime correspondent exactement
-Copier les données de sortie de la colonne de date dans une nouvelle colonne sur les deux tables, puis les faire correspondre pour éviter tout problème éventuel de la formule
-Avoir essayé différents types de données/modélisation pour représenter la chaîne
Tous ces éléments m'ont donné des tables sans jointure réussie. Une idée de ce qui me manque ici, ou des "conseils de bonnes pratiques" généraux pour les jointures de table ? J'ai lu la documentation JMP et j'ai réussi à utiliser les jointures de table dans le passé, mais je cherche à mieux comprendre ce qui peut se passer ici. Merci
Je l'ai fait fonctionner en copiant et en collant chaque colonne de date dans Excel, puis en la recopiant et en la collant dans JMP pour les deux tables. Cependant, j'aimerais toujours comprendre ce qui se passe ici à l'origine de ce problème.
Salut,
Avez-vous un exemple de jointure où vous n'arrivez pas à obtenir le résultat souhaité ? Si c'est le cas, si vous joignez ce qui suit, je pense que nous aurons une meilleure idée de ce qui se passe exactement et comment vous conseiller :
- table A et table B (assainies, bien sûr, dans le cas où l'une ou l'autre contient des données sensibles). Ceux-ci peuvent être partiels... pas besoin de télécharger des tables massives.
- la (mauvaise) table C, avec son script "Source" intact
- au moins quelques lignes d'une table "C" réussie... au moins, à quoi ressemblerait la jointure réussie. Ou, au lieu de cela, une explication de ce qui ne va pas avec la table jointe C (c'est-à-dire, "la ligne 21 est incorrecte parce que..." ou "il devrait y avoir une ligne avec ces éléments, mais il n'y en a pas...")
Il existe de NOMBREUSES façons dont les jointures peuvent aller de travers... cela nous aidera à comprendre votre cas particulier.
Acclamations,
Brady
Les données d'horodatage peuvent causer des problèmes car les valeurs peuvent contenir différentes heures au cours d'une journée donnée, mais si la formule utilisée pour afficher les données est un affichage "Date uniquement", avec le composant de temps n'étant pas affiché, l'utilisateur peut penser qu'il y a une correspondance, mais les valeurs numériques réelles sont différentes.
Si vous convertissez en chaîne de caractères, assurez-vous que le format utilisé pour convertir est essentiel, comme vous le suggérez.L'autre élément que je trouve important, ce sont les espaces vides potentiels ou suivants.Donc, ce que je fais lors de la conversion en chaîne de caractères, c'est d'utiliser la fonction Trim() pour supprimer ces espaces vides potentiels.