0
votes

Données du tableau 2 pendant un mois lorsque leur n'est pas une donnée dans le tableau 1

J'ai deux tables A et B.

  • Une table contient 3 mois de données (sera ajoutée tous les jours de manière à ce que les mois passent plus de données seront ajoutés pour les mois à venir ASWELL) LI> ul>

    & 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 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>

    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>

    ID  Jan  Feb  Mar
    1   101  201  100  //Here Jan value from table2
    2   201  204  100
    


5 commentaires

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 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 ..


3 Réponses :


0
votes

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');


5 commentaires

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



0
votes

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. xxx

si vous ajoutez un distinct , vous obtiendrez une seule entrée par ID, mois combinaison si vous voulez Supprimer les duplicats. Vous pouvez également faire groupe par ID ou quoi que vous souhaitiez obtenir une agrégation

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 xxx

< Strong> Démo


2 commentaires

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



0
votes

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


0 commentaires