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

Spring Java Discussion :

une requête avec des calculs sur plusieurs colonnes


Sujet :

Spring Java

  1. #1
    Membre à l'essai Avatar de REDBAR
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 19
    Points
    19
    Par défaut une requête avec des calculs sur plusieurs colonnes
    Bonjour à tous
    Je suis débutant en srping te je travaille avec springboot et je suis actuellement bloquer sur une fonctionnalité.
    Je dois faire un tableau me ramenant plusieurs resultat de calcul par produits

    détails:
    pour chaque produit de la table produit
    je doit avoir le résultat suivant (juste un exemple):

    Produit A | Proudit B| Produit C| produit D| ..

    Somme des quantité vendus xxx | xxxx | xxxx | xxxx | ...
    Montant Total des vente xxx | xxxx | xxxx | xxxx | ...
    Somme des quantité Perdue xxx | xxxx | xxxx | xxxx | ...
    Montant vente à crédit xxx | xxxx | xxxx | xxxx | ...
    Somme des quantité à crédit xxx | xxxx | xxxx | xxxx | ...
    Montant ventes cash xxx | xxxx | xxxx | xxxx | ...
    ...

    Ma table produit est lié à ma table Ligne_Bon_de_sortie (quantite, prixvente ,...) qui est lié a la table Bon_de_sortie(typesortie, typeVente,..)

    Si j'arrive à avoir séparément les différents résultats en ligne dans le tableau, je ne sais pas comment faire pour avoir le tableau tel que vous le voyez.

    J'ai besoin de votre aide s'il vous plais

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
    public interface LigneBonDeSortieService {
     
        /**
         * Save a ligneBonDeSortie.
         *
         * @param ligneBonDeSortie the entity to save
         * @return the persisted entity
         */
        LigneBonDeSortie save(LigneBonDeSortie ligneBonDeSortie);
     
        /**
         *  Get all the ligneBonDeSorties.
         *
         *  @param pageable the pagination information
         *  @return the list of entities
         */
        Page<LigneBonDeSortie> findAll(Pageable pageable);
     
        /**
         *  Get the "id" ligneBonDeSortie.
         *
         *  @param id the id of the entity
         *  @return the entity
         */
        LigneBonDeSortie findOne(Long id);
     
        /**
         *  Delete the "id" ligneBonDeSortie.
         *
         *  @param id the id of the entity
         */
        void delete(Long id);
     
        /**
         * Search for the ligneBonDeSortie corresponding to the query.
         *
         *  @param query the query of the search
         * @param pageable
         *  @return the list of entities
         */
        Page<LigneBonDeSortie> search(String query, Pageable pageable);
     
     
        List<LigneBonDeSortie> chiffreAffaireParProduit( String dateDebutPeriode, String dateFinPeriode );
     
        List<LigneBonDeSortie> getQuantiteProduitVendueMois(String dateDebutMois, String dateFinMois);
     
        List<LigneBonDeSortie> getQuantiteProduitPromotionMois(String dateDebutMois, String dateFinMois);
     
        List<LigneBonDeSortie> getQuantiteProduitVendueACreditMois(String dateDebutMois, String dateFinMois);
     
        List<LigneBonDeSortie> getQuantiteProduitVendueCashMois(String dateDebutMois, String dateFinMois);
     
        List<LigneBonDeSortie> getValeurVenteQuantiteProduitACreditMois(String dateDebutMois, String dateFinMois);
     
        List<LigneBonDeSortie> getValeurVenteQuantiteProduitCashMois(String dateDebutMois, String dateFinMois);
     
     
    }
    voici le code de
    LigneBonDeSortieServiceImpl
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    @Service
    @Transactional
    public class LigneBonDeSortieServiceImpl implements LigneBonDeSortieService{
     
        private final Logger log = LoggerFactory.getLogger(LigneBonDeSortieServiceImpl.class);
     
        @Inject
        private LigneBonDeSortieRepository ligneBonDeSortieRepository;
     
        @Inject
        private LigneBonDeSortieSearchRepository ligneBonDeSortieSearchRepository;
     
     
      @Override
        public List<LigneBonDeSortie> chiffreAffaireParProduit(String dateDebutPeriode, String dateFinPeriode) {
            return ligneBonDeSortieRepository.findChiffreAffaireByProduit(dateDebutPeriode, dateFinPeriode);
        }
     
        @Override
        public List<LigneBonDeSortie> getQuantiteProduitVendueMois(String dateDebutMois, String dateFinMois) {
            return ligneBonDeSortieRepository.quantiteProduitVendueDuMois(dateDebutMois, dateFinMois);
        }
     
        @Override
        public List<LigneBonDeSortie> getQuantiteProduitPromotionMois(String dateDebutMois, String dateFinMois) {
            return ligneBonDeSortieRepository.quantiteProduitPromotionDuMois(dateDebutMois, dateFinMois);
        }
     
        @Override
        public List<LigneBonDeSortie> getQuantiteProduitVendueACreditMois(String dateDebutMois, String dateFinMois) {
            return ligneBonDeSortieRepository.quantiteProduitVendueCREDITDuMois(dateDebutMois, dateFinMois);
        }
     
    @Override
        public List<LigneBonDeSortie> getValeurVenteQuantiteProduitACreditMois(String dateDebutMois, String dateFinMois) {
           return ligneBonDeSortieRepository.valeurVenteCREDITDuMois(dateDebutMois, dateFinMois);
        }
     
        @Override
        public List<LigneBonDeSortie> getQuantiteProduitVendueCashMois(String dateDebutMois, String dateFinMois) {
            return ligneBonDeSortieRepository.quantiteProduitVendueCASHDuMois(dateDebutMois, dateFinMois);
        }
     
     
        @Override
        public List<LigneBonDeSortie> getValeurVenteQuantiteProduitCashMois(String dateDebutMois, String dateFinMois) {
           return ligneBonDeSortieRepository.valeurVenteCASHDuMois(dateDebutMois, dateFinMois);
        }

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Soit tu parcours les résultats pour remplir un Map du côté java pour avoir le format de donnée que tu cherches.
    Soit tu utilises une procédure stockée pour transformer les lignes en colonnes dans la requête, dans ce cas, tu trouves pas mal d'exemple de procédure selon le type de ta base sur le net.

    A+.

  3. #3
    Membre à l'essai Avatar de REDBAR
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Bonjour @andry.aime
    Merci pour ta réponse.
    Je n'ai jamais utiliser de Map.
    pourrais-je avoir juste un petit exemple la dessus.

    en ce qui concerne les procédures stockées cette solution ne va-t'elle pas avoir des problèmes de performance au niveau de l'application je voudrais parler de lourdeur dans le traitement.

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Pour le Map, tu trouves des exemples ici:
    http://jmdoudoux.developpez.com/cour...ollections.php
    http://ekameleon.developpez.com/arti...abstraits/map/

    Et puis si tu utilises une procédure stocké, tu gagneras en performance en appelant une seule procédure pour avoir toutes les données que tu as cité et faire le traitement côté base au lieu de faire plusieurs requêtes vers la base comme tu le procèdes actuellement.

    A+.

  5. #5
    Membre à l'essai Avatar de REDBAR
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Ok merci
    Je vais regarder les exemple avec la Map.
    Mais je crois que je vais suivre ton conseil et faire avec les procédure stockée.
    Je reviens d'ici peut si je cale quelque part.
    merci encore

Discussions similaires

  1. [AC-2010] Séparer des champs sur plusieurs colonnes dans une requête
    Par Chavoben dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/07/2016, 14h21
  2. Critères avec opérateurs dans une requête avec des champs calculés
    Par lmollard dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/05/2008, 18h53
  3. Réponses: 3
    Dernier message: 09/08/2006, 11h58
  4. [SQL] Requête dans une requête...avec des INNER JOIN!
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 06/04/2006, 08h26
  5. Requête avec des tables de plusieurs bases
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h56

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