J'ai deux tables A et B.
& B Table dispose de 12 mois de données (pour une année complète). P>
Il est possible que le tableau A puisse manquer des données pendant un mois, par exemple dans mon cas Jan a des données pour un identifiant mais pour la février, il a des données pour le même identifiant. P>
Lorsque je prends à gauche, je suis manquant des données pour 1 ID pour Jan du tableau 2, car table n'a aucune donnée pour ID 1. P>
Quand je prends la bonne join, je reçois 12 mois de données pour le tableau 2 de la table 2 de jointure appliquée Mon exigence est d'obtenir les données de TABLE1 et de TABLE2 pendant les mois dans le tableau1 et si la table n'a aucune donnée de certains mois (par exemple pour Jan ) Ensuite aussi j'ai besoin de données pour Jan de la table2. P> Tableau 1 P> mois (tableau A. date) = mois (tableau B. Date) Code> Dans cette cas également, je perds des données pour ID 1 à partir du tableau2. P>
ID Jan Feb Mar
1 101 201 100 //Here Jan value from table2
2 201 204 100
3 Réponses :
Essayez Union code> à la place:
select * from table A where Date between to_date('2019-01-01 00:00:00', 'YYYY.MM.DD HH24:MI:SS') and to_date('2019-01-31 23:59:59', 'YYYY.MM.DD HH24:MI:SS')
union
select * from table B where Date between to_date('2019-01-01 00:00:00', 'YYYY.MM.DD HH24:MI:SS') and to_date('2019-01-31 23:59:59', 'YYYY.MM.DD HH24:MI:SS');
Comment l'Union fonctionne-t-elle dans ce cas, pouvez-vous m'aider avec peu de lignes de description
Mon erreur, pas l'union tout, juste union. Le point est que vous sélectionnez toutes les données dont vous avez besoin sur les tableaux B et A et l'unissent avec Union qui élimine les doublons.
Merci pour la clarification, je ne peux pas utiliser l'Union, c'est leur autre moyen d'accomplir la même chose?
Pourquoi ne pouvez-vous pas utiliser ça? Y a-t-il des exigences spécifiques?
Merci pour l'explication, la raison pour laquelle je ne peux pas utiliser Union est que je suis en train de mettre en œuvre dans Tableau où je ne peux pas voir l'option Union mais que le fond est identique, vous avez donc demandé si leur option est une autre option
Vous ne savez pas comment vous extrayez les valeurs car vous n'avez pas montré la requête réelle qui donne à votre sortie attendue.
Cette requête semble fonctionner bien, c'est-à-dire cela donne ce que vous vouliez à l'origine. p> si vous ajoutez un Notez que le cas ci-dessous n'est que si vous souhaitez préférer la valeur de TABLE 1 sur la table 2 ou simplement la sélection de lignes de T2 serait assez p> < Strong> Démo Strong> P> P> distinct code>, vous obtiendrez une seule entrée par
ID, mois code> combinaison si vous voulez Supprimer les duplicats. Vous pouvez également faire
groupe par ID code> ou quoi que vous souhaitiez obtenir une agrégation p>
Merci Kaushik, oui vous avez raison, je n'ai pas posté la requête parce que je manipule tout le processus de Tableau et où je ne reçois pas les données attendues à cause des problèmes mentionnés, envisagez donc de modifier l'utilisation de SQL Logic, alors Couln ' T Fournir toutes les informations complètes, merci pour votre aide implémentera et vous mettre à jour les résultats
@Siva: De rien. Si vous avez trouvé la réponse utile, considérez accepter , afin qu'il puisse Aidez également les autres.Aso lire Ceci
Si vous avez ces types de restrictions dans vos outils de requête, il peut être préférable de créer une vue dans la base de données qui combine les tables, puis interrogeez la vue.
create view A_B as
Quelle est votre production attendue? Montrez-le sous la forme tabulaire
@Kaushiknayak s'il vous plaît vérifier mon édition
Donc, si pour un identifiant et un mois donné, la valeur
code> est différente entre le tableau 1 et le tableau 2? vont-ils toujours être la même chose?
@Kaushiknayak La valeur peut être une valeur aléatoire, il suffit de nécessiter les données que la table 1 n'a pas d'enregistrement pour le mois dans le tableau 2
OK, pour un moment, en regardant votre sortie attendue, je pensais que vous ressembliez les valeurs de TABLE1 et TABLE2. Il ne semble pas être le cas ..