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

Oracle Discussion :

etat matriciel à trous


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut etat matriciel à trous
    Bonjour

    je voudrais faire un etat matriciel avec report et 4 tables:

    domain
    dom_code(pk)
    equipts
    eq_code (pk)
    transacts
    tr_code(pk)
    tr_date
    tr_type
    tr_dom
    tr_eq
    booked
    bo_code(pk)
    bo_date
    bo_eq
    bo_dom
    bo_hours

    je souhaite lister en ligne tous les dom_code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select dom_code from domain
    en colonne tous les eq_code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select eq_code from equipts
    meme ceux qui n'ont pas d'occurence dans la plage de date selectionnée:

    et en cellules de la matrice les sum(bo_hours) d'une part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select sum(bo_hours) from booked
    where bo_date between :DDEB and :DFIN
    GROUP BY bo_dom,bo_eq

    et count(tr_code) avec critere d'autre part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select count(tr_code)
    from transacts
    where tr_type='BO'
    and TR_date between :DDEB and :DFIN
    GROUP BY TR_DOM,TR_EQ
    en respectant les jointures TR_DOM=DOM_CODE
    and TR_EQ=EQ_CODE

    et BO_DOM=DOM_CODE and BO_EQ = EQ_CODE

    report n'accepte pas 2 groupes sous la matrice constituée par les 2 requetes domain et equipts??

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Tu veux une seule requête qui te donne tout ça, ou bien tu utilises un outil de reporting (Oracle Reports par exemple) ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    si c'est possible en un seul sql c'est mieux

    sinon j'utilise oracle report actuellement mais bientot vais passer sous cognos reportnet

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    bon, déjà pour le sum(bo_hours) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT D.DOM_CODE, E.EQ_CODE, sum(bo_hours) 
    FROM (domain D
      CROSS JOIN equipts E)
      LEFT JOIN booked B ON D.DOM_CODE = B.BO_DOM AND E.EQ_CODE = B.BO_EQ
    WHERE B.bo_date BETWEEN :DDEB AND :DFIN OR B.bo_date IS NULL
    GROUP BY D.DOM_CODE, E.EQ_CODE
    Tu peux faire le count(tr_code) sur le même principe...

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    cette syntaxe cross join ne me dit rien en oracle V8.1.7.3

    mais je dois passer tres prochainement en V10 .....

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Ah, si tu es en v8, ça doit donner ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT D.DOM_CODE, E.EQ_CODE, sum(bo_hours) 
    FROM domain D,
      equipts E,
      booked B 
    WHERE D.DOM_CODE = B.BO_DOM (+)
       AND E.EQ_CODE = B.BO_EQ (+)
       AND B.bo_date BETWEEN :DDEB AND :DFIN (+)
    GROUP BY D.DOM_CODE, E.EQ_CODE

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/04/2008, 13h22
  2. report matriciel avec trous
    Par gg2vig dans le forum Reports
    Réponses: 9
    Dernier message: 09/01/2008, 11h59
  3. Réponses: 3
    Dernier message: 20/05/2007, 09h39
  4. bare d'etat
    Par parasito16211 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/07/2002, 08h02
  5. C'est quoi exactement un générateur d'états
    Par Henry Cesbron Lavau dans le forum Outils de restitution et d'analyse
    Réponses: 0
    Dernier message: 02/04/2002, 19h15

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