UNION DE DEUX TABLES

Résolu
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011 - 11 juil. 2011 à 19:14
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011 - 14 juil. 2011 à 10:52
Bonjour tous!
Je dois traiter deux balances comptables provenant de Excel. Pour le faire je dois fusionner les deux balances et l'exploiter pour sortir plusieurs états d'analyse en fonction des différentes requêtes.Voici la structure de mes deux tables:
T_BalanceN : NumcpteN, LibelleN, SoldebitN
T_BalanceN1: NumcpteN1, LibelleN1, SoldebitN1

Je veux avoir Numcpte, Libelle, Soldebit, Soldcredit
Quand je fait une requete directe du type
SELECT T_BalanceN.NumcpteN, T_BalanceN.LibelleN, T_BalanceN.SoldebitN
FROM T_BalanceN
WHERE (((T_BalanceN.NumcpteN) Like "65*"));
UNION ALL SELECT T_BalanceN1.NumcpteN1, T_BalanceN1.LibelleN1, T_BalanceN1.SoldebitN1 As Soldebit
FROM T_BalanceN1
WHERE (((T_BalanceN1.NumcpteN1) Like "65*"));
Je n'arive pas à avoir le resultat recherché.
Je sollicite votre aide pour que je puisse avancer. Merci à Tous

11 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 juil. 2011 à 15:59
Bonjour,

il faut enlever le premier ";" et fermer les parenthèses ouvertes :

SELECT T_BalanceN.NumcpteN, T_BalanceN.LibelleN, T_BalanceN.SoldebitN, null as SoldebitN1
FROM T_BalanceN
WHERE T_BalanceN.NumcpteN Like "65*"

UNION ALL

SELECT T_BalanceN1.NumcpteN1 as NumcpteN, T_BalanceN1.LibelleN1 as LibelleN, null as SoldebitN, T_BalanceN1.SoldebitN1
FROM T_BalanceN1
WHERE T_BalanceN1.NumcpteN1 Like "65*"; 
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
11 juil. 2011 à 23:44
Salut,

Quelle est le message d'erreur?

Renomme les colonnes de la seconde requete pour que les noms correspondent?
0
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
12 juil. 2011 à 12:17
Merci pour votre réaction . Pas que j'ai un message d'erreur. Mais j'aimerais que au final j'ai ceci
Numcpte, Libelle, SoldebitN, SoldeditN1
Alors que le résultat de ma requête me donne SoldebitN et SoldebitN1 dans la même colonne.

C'est créer une quatrième colonne avec SoldebitN avec les regroupements qui est mon problème
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 juil. 2011 à 12:26
Peut etre un truc du genre
SELECT T_BalanceN.NumcpteN, T_BalanceN.LibelleN, T_BalanceN.SoldebitN, null as SoldebitN1 
FROM T_BalanceN
WHERE (((T_BalanceN.NumcpteN) Like "65*"));

UNION ALL 

SELECT T_BalanceN1.NumcpteN1 as NumcpteN, T_BalanceN1.LibelleN1 as LibelleN,  null as SoldebitN, T_BalanceN1.SoldebitN1 
FROM T_BalanceN1
WHERE (((T_BalanceN1.NumcpteN1) Like "65*")); 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
12 juil. 2011 à 13:21
Merci, mais un message d'erreur qui est le suivant: INSTRUCTION SQL NON VALIDE : DELETE, INSERT,PROCEDURE .... attendue
0
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
12 juil. 2011 à 16:27
Merci Julien39, voici le resultat de la requête.
NumcpteN LibelleN SoldebitN SoldebitN1
6511000300 ARRONDI DE PAIE 30412
6511000300 ARRONDI DE PAIE 22660

Mais ça ne me satisfait pas trop parce qu'il y a des doublons de Numcpte et j'aimerais avoir par exemple
NumcpteN LibelleN SoldebitN SoldebitN1
6511000300 ARRONDI DE PAIE 30412 22660
Comment eliminer les doublons pour les regrouper sur la m^me ligne
0
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
13 juil. 2011 à 13:10
Salut à tous;

Je voudrais savoir s'il est possible de créer une requête de jointure entre deux tables qui ne sont pas en relation directe
0
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
13 juil. 2011 à 14:46
Salut à tous,
Je voudrais qu'on corrige cette requête pour moi . Parce que quand je l'exécute, j'ai le message suivant: Erreur de syntaxe dans la clause FROM

SELECT T_BalanceN.NumcpteN, T_BalanceN.LibelleN, T_BalanceN.SoldebitN, T_BalanceN1.SoldebitN1
FROM T_BalanceN
FULL OUTER JOIN T_BalanceN ON T_BalanceN.NumcpteN= T_BalanceN1.NumcpteN
WHERE T_BalanceN1.NumcpteN1 Like "65*"
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
13 juil. 2011 à 20:02
Mets un alias sur les 2 tables de maniere a les distinguer ou corriges le nom en T_BalanceN1 pour la seconde.

le full outer join, c'est pour des lignes qui ont des données soit en années N ou N- 1 ou les 2?
C'est ce que tu recherches.
0
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
14 juil. 2011 à 10:24
Bonjour NHERVAGAULT,
Merci, effectivement c'est ce que je recherche. Si tu pouvais corriger ma requête pour que je puisse afficher les données des deux avec la condition selon le numéro de compte.
0
mogouan Messages postés 11 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 14 juillet 2011
14 juil. 2011 à 10:52
Bonjour NHERVAGAULT,

Effectivement c'est ce que je recherche. Afficher les données sur les deux années selon un critère. Je souhaiterais tu corrige ma requête pour que je puisse afficher ces données
0
Rejoignez-nous