IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Transform/Pivot : Que peut on mettre dans le Pivot ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 52
    Points : 40
    Points
    40
    Par défaut Transform/Pivot : Que peut on mettre dans le Pivot ?
    Bonjour,

    je travaille énormément en ce moment avec des requêtes de table croisées de type Transform / Pivot.

    Mais je suis souvent heurté à de nombreux problèmes.

    La question est qu'a t on le droit de mettre dans le pivot ?

    Pourquoi cette question ? Je cherche tout simplement à faire un pivot selon le mois comptable.

    Qu'est ce que le mois comptable ? Il correspond à cette table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1	01/01/2007	26/01/2007
    2	27/01/2007	23/02/2007
    3	24/02/2007	30/03/2007
    4	31/03/2007	27/04/2007
    etc.

    Donc pour récupérer le mois comptable, il faut que je regarde la date de vente, de réalisation pour dire dans quel mois comptable la date se trouve.

    Je prend la requête qui me posait soucis au sujet précédent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Transform count(*)
    select typedeprojet
    from projet
    group by typedeprojet
    pivot month(datederealisation)
    Je voulais en faire un truc de ce genre la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Transform count(*)
    select typedeprojet
    from projet
    group by typedeprojet
    pivot (select mois from TblMonths where debutmois<=datederealisation and finmois>=datederealisation)
    Mais il semble que Transform/Pivot n'accepte pas les Select.

    Que faudrait il que je fasse ?
    J'avais songé à déclarer une fonction moiscomptable (date)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Transform count(*)
    select typedeprojet
    from projet
    group by typedeprojet
    pivot moiscomptable(datederealisation)
    Mais je ne sais pas faire ce genre de fonction ... et je ne sais pas si c'est utilisable.

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    bah tu peux surtout générer ton SQL via du code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function CreeRangeMois (byval mois as integer) As String
    dim i a integer
    dim sIn as string
    sIn = "IN ("
    for i = 1 to i
       str = str & i & ", "
    next i
    sIn = left(sIn, len(sIn) - 2)) & ")"
    CreeRangeMois = sIn
    End Fuction
    et puis dans une sub / function tu crées le SQL en appelant la fonction.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    Autant je pense que tu réponds à ma question du sujet précédent (créer la liste des mois). Autant la je suis pas sur que tu y répondes.

    Le nouveau problème qui s'est posé à moi, c'est de trouver le mois comptable. Et apparament dans le Pivot on ne peut pas mettre de select.

    Ce qui m'intéresserait c'est cette fonction MoisComptable... comment la fait on ?

    Vba ? Requete SQL paramètrée ?

    Ma connaissance d'Access est limitée ...

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    il suffit d'avoir une requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Currentdb.Querydefs("MaRequete").SQL = "TRANSFORM .... " & _
         "PIVOT Mois " & CreeRangeMois(Month(Now)) & " ;"

Discussions similaires

  1. Que peut-on mettre dans la méthode "AfterSessionEnd" ?
    Par Juju54350 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 02/12/2010, 13h27
  2. [JUnit] JUnit que faut il mettre dans la classe de test
    Par maysam dans le forum Tests et Performance
    Réponses: 9
    Dernier message: 06/11/2008, 13h20
  3. Réponses: 1
    Dernier message: 09/09/2008, 14h49
  4. 2 Define est ce que je peut les mettre dans un entete séparé !
    Par ..::snake::.. dans le forum Bibliothèques
    Réponses: 30
    Dernier message: 18/06/2007, 16h45
  5. Réponses: 5
    Dernier message: 19/10/2006, 00h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo