|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Guillaume Inscription : décembre 2007 Messages : 161 ![]() |
Bonjour !
Me voilà pris au dépourvu devant une requête SQL… Voici mes données : Table HISTORIQUE ------------------- Article;Année;Ventes Article A;2005;750 Article A;2006;800 Article A;2007;789 Article A;2008;815 Article A;2009;856 Article A;2010;905 Article B;2005;436 Article B;2006;521 Article B;2007;598 Article B;2008;605 Article B;2009;647 Article B;2010;689 Table COMMENTAIRES ---------------------- ID;Article;Date;Commentaire 30;Article A;07/12/2007;Commentaire1 31;Article A;17/12/2007;Commentaire2 34;Article A;30/11/2007;Commentaire3 36;Article B;10/12/2007;Commentaire4 37;Article B;10/12/2007;Commentaire5 Je cherche à obtenir une analyse croisée de la table HISTORIQUE avec en bout de ligne le dernier commentaire associé à l’article. Soit le résultat suivant : Résultat souhaité ----------------- Article;2005;2006;2007;2008;2009;2010;Date;Commentaire Article A;750;800;789;815;856;905;17/12/2007;Commentaire2 Article B;436;521;598;605;647;689;10/12/2007;Commentaire5a Je pensais tous simplement faire une jointure entre les 2 requêtes suivantes mais Access me renvoie un message d’erreur : « Le moteur de la base de données Microsoft Jet ne reconnaît pas ‘T1.Article’ en tant que nom de champ ou expression correcte ». Req1 : TRANSFORM Sum(HISTORIQUE.Ventes) SELECT HISTORIQUE.Article FROM HISTORIQUE GROUP BY HISTORIQUE.Article PIVOT HISTORIQUE.Année; Req2 : SELECT T1.Article AS Article, T1.[Date] AS [Date], T1.Commentaire AS Commentaire FROM [COMMENTAIRES] AS T1 WHERE T1.[Date] = (SELECT Max(T2.[Date]) FROM [COMMENTAIRES] T2 WHERE T2.Article = T1.Article) AND T1.[ID] = (SELECT Max(T3.[ID]) FROM [COMMENTAIRES] T3 WHERE T3.Article = T1.Article AND T3.[Date] = T1.[Date]); Req finale : SELECT * FROM Req1 LEFT JOIN Req2 ON Req1.Article = Req2.Article; Message d'erreur |
|
|
00
|
|
|
#2 | ||||||||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 175 ![]() |
Bonjour dut-dut,
Il faut passer par 4 requêtes que je te suggère de créer via l'assistant. En voici, néanmoins, le code généré : 1-HISTORIQUE_Analyse croisée - liste des ventes par année : Code sql :
Code :
Code :
Code :
2 observations :
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||||||||
|
|
10
|
|
|
#3 | |
|
Membre régulier
![]() Guillaume Inscription : décembre 2007 Messages : 161 ![]() |
A force de vouloir "emboîter" les instructions SQL pour éviter de stocker des requêtes intermédiaires, j'avais réussi à embrouiller Access (et moi par la même occasion
Merci de ta réponse. Ca fonctionne très bien. Citation:
@+ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com