begin process at 2012 02 16 20:58:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

SQL

 > 

Pb jointure externes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb jointure externes

jeudi 7 février 2008 à 10:10:47 | Pb jointure externes

astondb9

Bonjour,

J'ai problème avec une requête  SQL en jointure.
2 tables :
1ere table : id(cléprimaire) / description/ statut 
2ème table : id /date de l'action/ action

exemple :
1ere table:    1 / incident concernant le routage / ouvert
             2 / incident connection / ouvert
            3 / retard livraison  / clos

2eme table :   1 / 01/01/2008 10:00/ contact
             1 / 01/01/2008 12:00/ relance
             2 / 02/01/2008  08:00/ contact
             3 / 12/12/2007  09:00/ mail 

je voudrais récuperer l'ensemble des données de la premiere table dont le statut est ouvert et les données les plus récentes de la deuxième table pour chaque enregistrement de la 1ere table

je lance ma requète :
SELECT table1* , table2.action
FROM  table1 LEFT OUTER JOIN  table2 ON table1.id= table2.id AND date de l'action =(Select MAX(date de l'action) From table2)
WHERE Table1.Statut ='Ouvert'

cette requete  remonte bien l'ensemble de la table 1( excepter l'id3) mais uniquement l'action "2 / 02/01/2008  08:00/ contact" de ladeuxième table et pas l'action " 1 / 01/01/2008 12:00/ relance"

Quelqu'un a t il une idée pour recuperer ces données ?


merci
Astondb9
jeudi 7 février 2008 à 11:57:20 | Re : Pb jointure externes

LIBRE_MAX

Réponse acceptée !
Salut,
c 'est normal ! puisque tu fais un regroupement dans la table2 et que tu ne prend que la date maximale 02/01/2008 , qui correspond au 2.
Essaies :
SELECT table1* , table2.action
FROM  table1 LEFT OUTER JOIN  table2 ON table1.id= table2.id AND date de l'action =(Select MAX(date de l'action) From table2)
WHERE Table1.Statut ='Ouvert'


... Il y' en a même qui m' ont vu voler.


jeudi 7 février 2008 à 12:01:36 | Re : Pb jointure externes

pneau

Membre Club

salut,
ton pb vient de la clause " date de l'action =(Select MAX(date de l'action) From table2) "
tu récupères toutes les données dont la date est églae à max(date action)
dans ton cas, Max(date action) = 02/01/2008
ce qui revient a écrire And Date de l'action = '02/01/2008'
tu n'as qu'un enreg qui correspond à ce critère.
pour n'avoir que l'élément le plus récent de chaque élément de table 1, j'essaierais ceci

SELECT table1.* ,

(Select Top 1 DateAction FROM  Table2 Where Table1.ID = Table2.ID Order By DateAction Desc) as DateAction,

(Select Top 1 Action FROM  Table2 Where Table1.ID = Table2.ID Order By DateAction Desc) as
Action

From Table1

WHERE Table1.Statut ='Ouvert'

Sur ce

@+



Pat

 Don't Worry , Be Happy


lorsque le problème est résolu, pensez Réponse Acceptée

jeudi 7 février 2008 à 12:03:03 | Re : Pb jointure externes

pneau

Membre Club
Réponse acceptée !

salut (re) => Post Croisé avec Max (Salut !)

A toi de choisir la soluce qui te convient le mieux.

Pat

 Don't Worry , Be Happy


lorsque le problème est résolu, pensez Réponse Acceptée
jeudi 7 février 2008 à 12:14:04 | Re : Pb jointure externes

LIBRE_MAX

Salut pneau



... Il y' en a même qui m' ont vu voler.


jeudi 7 février 2008 à 13:01:53 | Re : Pb jointure externes

astondb9

Ok c'est super.
Je ne pensais pas que l'on pouvait inclure un select directement dans le premier select
 d'une requete

Merci encore
Astondb9
jeudi 7 février 2008 à 13:22:59 | Re : Pb jointure externes

LIBRE_MAX

Excuses moi mais tu veux toutes les occurences de tables2 dont
le statut est ouvert
1 / 01/01/2008 10:00/ contact
1 / 01/01/2008 12:00/ relance
2 / 02/01/2008  08:00/ contact

ou tu ne veux qu' une ?

Si tu les veux toutes, pas la peine d' imbriquer un 2 ième select.

SELECT table1* , table2.action
FROM  table1 LEFT OUTER JOIN  table2 ON table1.id= table2.id
WHERE Table1.Statut ='Ouvert'

suffira.
                 



... Il y' en a même qui m' ont vu voler.


jeudi 7 février 2008 à 13:26:10 | Re : Pb jointure externes

LIBRE_MAX

Réponse acceptée !
Autant pour moi !
je viens de relire et je m' aperçois de mon erreur

et les données les plus récentes de la deuxième table
encore une fois désolé.				

... Il y' en a même qui m' ont vu voler.


jeudi 7 février 2008 à 13:56:29 | Re : Pb jointure externes

astondb9



Astondb9
jeudi 7 février 2008 à 13:58:14 | Re : Pb jointure externes

astondb9


Pas de probléme je n'étais pas sur que ce soit très compréhensible

Astondb9


Cette discussion est classée dans : table, action, id, ouvert, table1


Répondre à ce message

Sujets en rapport avec ce message

Comment affecter une valeur à une variable objet ????????? [ par pierre751 ] BonjourJe souhaite alimenter une table dans access mais je veux pouvoir gerer le nom de la colonne de ma table (table1)ex : je veux pouvoir affecter u temps de mise à jour d'une table [ par ElMagnifico ] J'insere un nouvel enregistrement dans une table et je veux recuperer tout de suite derriere l'identifiant qui a ete cree (numAuto) donc le MAX. Seule recordset vba [ par ucorsu ] alors voilà g une table CLIENT avec différents champs comme Id, Nom , Adresse ...Ce que je veux c vérifier qu'un client axiste bien et récupérer son i pb d'insertion dans un BD [ par andrea06 ] J'ai un probleme dan sle code suivant dans la condition ou je specifie que si mon recordeset 3 n'est pas vide alors execute la condition ne fonctionne Prb simple mais pas tant .... [ par Troyan ] voici la requete qui marche pas et qui devrait me sauver la vie !!SELECT Table1.id, Table1.NomFROM Table1 INNER JOIN Table2 ON Table1.id = Table2.id_t comparer un champ de ma table avec un champ datagrid [ par Arkarch ] Bonjour !voilà mon problème : j'ai une db Acces avec une table candidature; dans cette table j'ai un champ id_candidature ( Numeroauto - type : Entie Pour les pros de la Base de données :) [ par el_teedee ] Bon, encore moi, J'ai bien ajouté mes employés comme il faut, mais voilà, vu que j'ai fait plusieurs essais, je me retrouve avec un table employé qui if dans une procédure stocké ? [ par jesusonline ] Bonjour, je ne connais pas encore SQLj'ai une table articles qui a un champ ID et je voudrais une fonction stocké qui prend en paramètre un ID et qui Ajout Enregistrement dauns une table [ par DAVIMIKA ] Bonjour et bonne année   <P class=MsoNormal style="MAR un problème, avec DAO et des frames [ par Shany ] Re salut tout le monde,J'ai un petit problème et mon msg s'adress à un dénommé duke.La dernière fois tu m'avs aidé à régler un problème : à l'aide d'u


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales