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

Bases de données Delphi Discussion :

[delphi 7] [firebird] Cube de décision.


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut [delphi 7] [firebird] Cube de décision.
    Bonjour,
    Je cherche un moyen d'afficher des statistiques de vente.
    J'arrive à calculer des statistiques simples (SUM).
    Mon problème c'est pour calculer des statistiques plus en détail: ventes par mois.
    Je pensais utiliser un decisioncube mais ça me semble être une usine à gaz et j'ai toujours le même message d'erreur auquel je n e comprends strictement rien: "la capacité du cube de décision est faible. Désactiver des dimensions ou modifier le dataset"
    Auriez vous une autre idée à me soumettre ou des conseils sur l'utilisation du decisioncube
    D'avance merci

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Citation Envoyé par MickSou Voir le message
    Mon problème c'est pour calculer des statistiques plus en détail: ventes par mois.
    Par forcement nécessaire de passer par un DecisionCube (que je connais pas ou très mal).

    Un simple regroupement dans ta requête est peut être suffisant.
    Par exemple:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
      EXTRACT(MONTH FROM CHAMP_DATE) AS MOIS, SUM(QTE) TOTAL
    FROM 
      MA_TABLE
    GROUP BY
      1;

    A adapter à tes données, bien sûr.

    @+ Claudius.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut
    Salut Claudius,
    Merci pour ton aide. j'ai fait le extract du mois sur la date effectivement mais je me retrouve avec des lignes genre
    "PRODUIT A JUIN 15
    PRODUIT A JUILLET 20"....
    Pour l’affichage dans un DBgrid ça va pas être génial. A moins d'utiliser un dbgrid pour chaque mois de l'année?

    Moi j'espérais avoir un tableau avec sur chaque ligne un nom de produit, sur chaque colonne un mois de l'année et les valeurs dans le tableau...
    Je me sens un peu perdu sans ce decisioncube...

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Oui effectivement une requête de ce type ne sera pas suffisante.
    Malheureusement DecisionCube et moi, cela fait deux.

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par MickSou Voir le message
    ....
    Moi j'espérais avoir un tableau avec sur chaque ligne un nom de produit, sur chaque colonne un mois de l'année et les valeurs dans le tableau...
    Je me sens un peu perdu sans ce decisioncube...
    Salut,

    Pourquoi ne pas utiliser un StringGrid, je fais excatement la même chose et avecun StringGrid ta pas de limite de présentation, dans le sens que tu veux.

    1) tu fait la requete proposé par claudius
    2) tu l'affiche dans ton sting grid.

    a+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut
    Merci pour ces propositions.

    Sergio: je parle pas encore le SQL très très bien alors "list", "with", tout ça je vais fouiller pour voir ce que c'est!!

    Buzzl'eclair: StringGrid jamais encore utilisé... C'est Grizzly qui a développé ça je crois? peux tu me faire une petite présentation rapide.

    Ma solution que j'ai réfléchi cette nuit: créer une vue de la table du type

    PRODUIT SUMJUIN SUMJUILLET SUMAOUT SUMSEPTEMBRE

    et balancer cette vue dans le DBgrid. Qu'en pensez vous?
    Merci

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    WITH et LIST ne sont valable que depuis firebird 2.5

    DBGrid est un descendant de TStringGrid la seule 'difficulté' est de le remplir a la main

    une autre piste
    une requete avec cte (une table par mois) et jointure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    WITH  
    JANVIER  AS (SELECT  PRODUIT, SUM(QTE) AS TOTAL FROM 
      MA_TABLE WHERE EXTRACT(MONTH FROM CHAMP_DATE)=1 
    GROUP BY 1),
    FEVRIER  AS (SELECT  PRODUIT, SUM(QTE) AS TOTAL FROM 
      MA_TABLE WHERE EXTRACT(MONTH FROM CHAMP_DATE)=2 
    GROUP BY 1),
    MARS  AS (SELECT  PRODUIT, SUM(QTE) AS TOTAL FROM 
      MA_TABLE WHERE EXTRACT(MONTH FROM CHAMP_DATE)=3 
    GROUP BY 1)
    etc....
     
    SELECT PRODUIT,COALESCE(JANVIER.TOTAL,0),COALESCE(FEVRIER.TOTAL,0),COALESCE(MARS.TOTAL,0) etc....
    FROM TABLE_PRODUIT 
    LEFT JOIN JANVIER ON JANVIER.PRODUIT=PRODUIT
    LEFT JOIN FEVRIER ON FEVRIER.PRODUIT=PRODUIT
    LEFT JOIN MARS ON MARS.PRODUIT=PRODUIT
    etc...
    ca doit marcher , mais je ne garanti rien , j'ai fais un test sur un fichier énorme 4 année de ventes 2000 à 3000 ref , donc temps très long
    je préfère nettement le LIST

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut
    A l'impossible nul n'est tenu....


    Menfin moi j'ai fait sécher Claudius quand même!
    Y'en a pas beaucoup qui ont du y arriver

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Moi aussi 'décision cube + moi = 2'
    avec
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    WITH  A  AS (SELECT
      PRODUIT,EXTRACT(MONTH FROM CHAMP_DATE) AS MOIS, SUM(QTE) TOTAL
    FROM 
      MA_TABLE
    GROUP BY 1,2) 
     
    SELECT PRODUIT,LIST(TOTAL) FROM A GROUP BY 1

    ça le fait presque .
    Reste 'seulement' deux problèmes' a résoudre
    - l'affichage ne peu plus être un dbgrid à cause du list
    -il faut gérer les mois sans , mais y a la réponse quelque part dans le forum Firebird

Discussions similaires

  1. Delphi 2007 Firebird/Interbase
    Par dlewin dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/05/2007, 01h53
  2. Delphi avec FireBird 2
    Par Doucoure dans le forum Delphi
    Réponses: 2
    Dernier message: 19/02/2007, 18h02
  3. Delphi et Firebird
    Par nassoft dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2006, 14h25
  4. Cube de décisions
    Par shane dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 05/07/2005, 23h35
  5. composants delphi pour firebird
    Par devalender dans le forum Débuter
    Réponses: 1
    Dernier message: 07/02/2005, 12h24

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