begin process at 2010 03 18 07:23:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

Jointure : où sont mes mois?


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

Jointure : où sont mes mois?

mercredi 14 mars 2007 à 09:29:52 | Jointure : où sont mes mois?

finarfin95

    Bonjour à tous!

J'ai un petit souci de jointure et je fais appel à la collectivité pour m'aclairer un petit peu.

Le contexte est le suivant :
Je possède une vue de structure suivante :
ID (int) - DATE (datetime) - CATEGORIE (varchar) - SOUS-CATEGORIE (varchar) - VALEUR (float)

A partir de cette vue, je voudrais en créer une autre qui me permettrait d'avoir au minimum une valeur par CATEGORIE / SOUS-CATEGORIE par mois/année. Naïvement je me dis qu'en créant une table temporaire avec mes 12 mois je pourrais, via une jointure externe et je ne sais quels artifices, obtenir le résultat recherché, mais je ne vois pas comment...

Merci pour tout conseil que vous pourrez me donner sur le sujet!
Romain

Exemple:

ID   DATE           CATEGORIE   SOUS-CATEGORIE   VALEUR
1      01/01/2006      CAT1                     S-CAT1                  10
2      05/01/2006      CAT1                     S-CAT2                  15
3      27/02/2006      CAT1                     S-CAT1                  20
4      05/05/2006      CAT1                     S-CAT1                  10
5      10/09/2006      CAT1                     S-CAT2                  50
6      19/09/2006      CAT1                     S-CAT2                  10
etc...

Qui  me donnerais:

ANNEE   MOIS   CATEGORIE   SOUS-CATEGORIE   VALEUR
2006         01         CAT1                        S-CAT1                  10
2006         02         CAT1                        S-CAT1                  20
2006         03         CAT1                        S-CAT1                    0
2006         04         CAT1                        S-CAT1                    0
2006         05         CAT1                        S-CAT1                  10
2006         06         CAT1                        S-CAT1                    0
2006         07         CAT1                        S-CAT1                    0
2006         08         CAT1                        S-CAT1                    0
2006         09         CAT1                        S-CAT1                    0
2006         10         CAT1                        S-CAT1                    0
2006         11         CAT1                        S-CAT1                    0
2006         12         CAT1                        S-CAT1                    0
2006         01         CAT1                        S-CAT2                  15
2006         02         CAT1                        S-CAT2                    0
2006         03         CAT1                        S-CAT2                    0
2006         04         CAT1                        S-CAT2                    0
2006         05         CAT1                        S-CAT2                    0
2006         06         CAT1                        S-CAT2                    0
2006         07         CAT1                        S-CAT2                    0
2006         08         CAT1                        S-CAT2                    0
2006         09         CAT1                        S-CAT2                  50 (possibilité de group by si plus simple?)
2006         09         CAT1                        S-CAT2                  10 (possibilité de group by si plus simple?)
2006         10         CAT1                        S-CAT2                    0
2006         11         CAT1                        S-CAT2                    0
2006         12         CAT1                        S-CAT2                    0

mercredi 14 mars 2007 à 09:32:06 | Re : Jointure : où sont mes mois?

finarfin95

    J'ai oublié de préciser que mes données pouvaient s'étendre sur plusieurs années (contrairement à mon exemple qui se concentre sur 2006).
mercredi 14 mars 2007 à 14:27:04 | Re : Jointure : où sont mes mois?

finarfin95

Réponse acceptée !
Ok quelqu'un m'a donné la solution, c'est un truc du genre :

SELECT    M.ANNEE
, M.MOIS
, H.CATEGORIE
, H.SOUS_CATEGORIE
, sum(V.VALEUR)AS TOTAL
FROM
( MOIS AS M
CROSSJOIN
(SELECT C.CATEGORIE
, C.SOUS_CATEGORIE
FROM MATABLE AS C
GROUPBY
C.CATEGORIE
, C.SOUS_CATEGORIE
)AS H
)
LEFTJOIN
MATABLE AS V
ON H.CATEGORIE = V.CATEGORIE
AND H.SOUS_CATEGORIE = V.SOUS_CATEGORIE
AND M.ANNEE = extract(year FROM V.DATE)
AND M.MOIS = extract(month FROM V.DATE)
GROUPBY
M.ANNEE
, M.MOIS
, H.CATEGORIE
, H.SOUS_CATEGORIE
;
 

Avec MOIS  une table temporaire contenant mon calendrier Mois/Années



Cette discussion est classée dans : mois, categorie, jointure, cat1, cat2


Répondre à ce message

Sujets en rapport avec ce message

requete avec date [ par nawal59 ] salut,SELECT Table1.Aide, Table1.NumDossier, Table1.TypeDemAccomp,Table1.dateFicheEtabli, Table1.date1ercontact, Table1.nom, Table1.nomJeuneFille, Tab problème de Date lorsque l'intervalle est à cheval sur 2 mois... [ par nico_ayci ] salut à tous ! j'ai une fonctionnalité de recherche qui donne la possibilité de trouver des enregistrements selon leur date, à plus ou moins X jours. Problème de requête à double jointure ... HELP ! [ par vladam ] Hello,Voici mon problème.J'ai une table "Table_3" avec 3 champsle premier ID numériquele deuxième ID2 numériquele troixième ID3 numériquej'ai une seco jointure avec des couple de clé [ par Rjoe ] Bonjour,je voulais savoir comment est ce que l'on faitpour faire une jointure avec comme clé primaire un coupletable1(clé 1,clé2 , champ1,champ2..)tab requete date [ par Rjoe ] bonjour ma question est la suivantedans mon aplication je souhaite faire une verification pour un mois courant ,or, il se peut que ce mois soit févrie Pb somme de plusieurs enregistrement [ par skyman272 ] J'ai 2 tables 1- Clients (nom, société, adresse)                   2- Facture (montant, date)Je voudrais faire une requette qui me donne les so besion d'aide pour l'architecture d'une ou deux table [ par Oziris ] salut a tous,je voudrer creer des categorie sur un petit moteur de recherche.pour cela j'ai creer 3 table sql :recherche -> ma table avec les entree r recup infos tables croisées [ par christobal ] Bonjour, j'ai les neuronnes qui fume, c'est ce qui arrive quand on reste trop longtemp sur un projet on fini par ne plus rien comprendre. Mon pb est q Probléme en jointure [ par Ayoub25 ] Salut!voici mon probleme, je suis un débutant en sql, et je fait un accès à une base de données access en utilisant le langage Visual Basic avec l'obj Criteres de requetes en fonction d'une période (année + mois) [ par ronando ] Bjr à tous,J'ai un petit souci, j'ai une table facture (n°,montant,annee,mois)je laisse le choix a l'utilisateur d'afficher les factures entre une pér


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,312 sec (3)

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