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

SAP Crystal Reports Discussion :

[CR-subquery] faire un count...


Sujet :

SAP Crystal Reports

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut [CR-subquery] faire un count...
    bonjour,

    je souhaiterais qu'on m'explique clairement (parce que pour le moment CR c'est pas ma tasse de thé et que le boukin "the complete reference" en anglais ne m'aide pas vraiment) comment on fait une sous requete dans un rapport crystal report.

    j'ai donc une table facture (factureid,facturetype,montant,date,agence,projetid)
    je fais une somme de facture par agence sur une date comprise entre date1 et date2.

    chaque projet a [0..n] facture, et ses factures peuvent avoir des dates différentes.

    j'ai crée des formules pour que selon certains cas on retranche 70euro du montant des factures pour un projet ou 30% de la facture selon son type.

    En ce qui concerne les % il n'y a pas de soucis, par contre pour les 70euros le problème se pose.

    1) je ne peux pas retrancher 70euros pour une facture parcouru, car je dois retrancher 70euro de la somme totale des factures pour un projet

    2) je ne peux pas diviser 70euros par le nombre de facture pour un projet
    et retrancher cette somme à chaque facture parcouru car je n'arrive pas a calculer le nombre de facture pour un projet sur cette periode de date.

    3)j'ai fais une variable tableau et une formule qui evalue pour chaque enregistrement si le projetid est déja ds le tableau et ds le cas contraire retranche les 70euros a la facture actuelle. Mais le soucis c'est que un tableau ne peut contenir que 1000 enregistrements, et déclaré des 10zaine voire 20aine de tableau pour pallier a ce est surement a proscrire.


    je veux donc pouvoir rajouter a ma requete construite par CR un champs
    "nombrefac", qui serait une sous requete parcourant un 2e tableau "facture", la jointure se faisant sur le projetid, et les dates de factures.


    au final on aurait une requete du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select f.facturemontant, 
    (select count(f1.factureid) from facture f1 where f1.date>date1 et f1.date<date2
    and f.projetid=f1.projetid) nombrefac
    from facture f
    where f.date>date1 and f.date<date2

    merci a tous.

  2. #2
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Bonjour,
    Tu dois pouvoir y arriver avec un sous-etat en récupérant ta valeur avec une variable Shared !!
    Renseigne toi sur les sous-etats !!
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    merci pour m'avoir guidé.

    voila j'ai fait le sous état qui calcule le nombre de facture pour chaque enregistrement.

    je l'ai basculé en mode suppression ds mon etat principal pour ne pas l'afficher.

    dans l'entete de groupe, j'ai mis une formule déclaration de shared variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    shared numbervar nombrefac:=0;
    dans le details a j'ai mis le sous état

    dans le details b j'ai mes enregistrement qui sont parcourus

    dans le sous états j'ai une formule pour évaluer le nombre de facture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    whilePrintingRecords;
    shared numbervar nombrefac;
     
    nombrefac:={@nbfac};
    dans mon état pincipal j'ai une formule pour recupérer cette variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    whilePrintingRecords;
    shared numberVar nombrefac;
    if (nombrefac)>0 then nombrefac
    else 0
    voici l'erreur que ca me donne quand j'essaie d'utiliser la avriable dans un calcul :

    un résumé a été specifié sur un champs non périodique


    merci de votre aide

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    bonjour,

    j'ai réussi à résoudre mon problème. merci nico pour m'avoir guider au départ.

    j'ai résolu le pb grace à un autre forum :

    voici le lien de mon thread:

    http://www.tek-tips.com/viewthread.cfm?qid=1083708&page=1

    ce forum est top en ce qui concerne CR, mais faut prévoir le décalage horraire hélas!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/05/2007, 08h35
  2. Réponses: 1
    Dernier message: 28/03/2007, 12h23
  3. Comment faire un count distinct ?
    Par Kloun dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/11/2006, 14h33
  4. Comment faire un count de colonnes null
    Par claralavraie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/01/2006, 14h13
  5. faire un count pour chaque resultat du select en mêm temps
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 11
    Dernier message: 09/05/2005, 15h30

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